-
解决Matlab中文乱码 - [Matlab]
2007-04-13
原创文章,转载请注明出自gosman的博客(http://gosman.blogbus.com) 。参考文章:再提 Ubuntu/Debian 下 JAVA 中文显示(http://www.linuxsir.org/bbs/showthread.php?t=222214)
由于Linux下Matlab的图形界面是用Java写的,所以只要搞定Java的中文显示就行了。
1、我Matlab2007a的JRE目录为:/opt/matlab/sys/java/jre/glnx86/jre1.5.0 请根据自己的安装目录和版本确定JRE的目录;
2、 $ cd /opt/matlab/sys/java/jre/glnx86/jre1.5.0/lib/fonts/;
3、建立目录fallback: $ mkdir fallback;
4、把字体复制或链接到fallback目录:
$ cp /media/disk/WINDOWS/Fonts/simsun.ttc fallback/ 我用的是Windows XP的simsun字体,你也可以用别的支持中文的字体;5、进入fallback目录,执行 mkfontscale 命令;
6、将上一步生成的文件添加到 lib/fonts/fonts.dir文件中,可用以下命令完成,当然也可以用编辑器复制粘贴:
$ cat fallback/fonts.scale >> fonts.dir (注意fonts.dir应该设为可写)7、至此Matlab的Java环境中文支持安装完了,接下来配置Matlab;
8、进入Matlab,选择 菜单 File>>Preferences>>Fonts 选择SimSun字体就行了;
9、如果没有相应的(我的是SimSun)字体,请把fallback下的字体加上可读属性:$ chmod a+r fallback/*
10、至此Matlab应该可以正常显示中文了。
-
emacs的MATLAB模式 - [Matlab]
2006-09-18
在.emacs文件中添加如下内容:;; Matlab-mode setup:
;; Add local lisp folder to load-path
(setq load-path (append load-path (list "/win/D/MATLAB701/java/extern/EmacsLink/lisp/(这是emacs.el文件的位置,一般matlab安装目录下有)")))
;; Set up matlab-mode to load on .m files
(autoload &aposmatlab-mode "matlab" "Enter MATLAB mode." t)
(setq auto-mode-alist (cons &apos("\\.m\\&apos" . matlab-mode) auto-mode-alist))
(autoload &aposmatlab-shell "matlab" "Interactive MATLAB mode." t)
;; Customization:
(setq matlab-indent-function t) ; if you want function bodies indented
(setq matlab-verify-on-save-flag nil) ; turn off auto-verify on save
(defun my-matlab-mode-hook ()
(setq fill-column 76)) ; where auto-fill should wrap
(add-hook &aposmatlab-mode-hook &aposmy-matlab-mode-hook)
(defun my-matlab-shell-mode-hook ()
&apos())
(add-hook &aposmatlab-shell-mode-hook &aposmy-matlab-shell-mode-hook)
;; Turn off Matlab desktop
(setq matlab-shell-command-switches &apos("-nodesktop -nosplash"))截图如下,第一个窗口是matlab-shell,第二个窗口是matlab-mode:
-
用MATLAB求一个数的模逆 - [Matlab]
2006-05-22
模逆的定义:设数a的n模逆为b,则满足关系式:a*b%n=1。该程序主要用到gcd函数,用法参照MATLAB的帮助文档。MATLAB程序为:
%b为整数a的模n倒数
function b=mod_inv(a,n)
[G,C,D]=gcd(a,n);
[m l]=size(a);
k=m*l;
for i=1:k
if G(i)-1
a(i)=NaN;
else
if C(i) > n
j=fix(C(i)/n);
a(i)=C(i)+n*j;
else if C(i) < 0
j=fix((n+abs(C(i)))/n);
a(i)=C(i)+n*j;
else
a(i)=C(i);
end
end
end
end
b=a;
%end






