总原则:能用向量矩阵解决的就不用for循环。
1. 匿名函数 @定义一个函数或变量,用括号里的字母作为变量名字。
标准格式是:
fhandle=@(arglist)express
(1)express是一个matlab变量表达式,比如:x+x.^2,sin(x)等
(2)argilst是参数列表;
(3)符号@是matlab创建函数句柄的操作符,表示创建由参数列表arglist和表达式express确定的函数句柄,并把这个函数句柄返回给变量fhandle,这样,以后就可以通过fhandle来调用定义好的函数了。
如:
myfun=@(x)(x+x.^2)
2. reshape 可以重新调整矩阵的行数、列数、维数。
例如:
>>B=repmat( [1 2;3 4],2,3) %2x2变(2x2)x(2x3)即 4x6
B =
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
4. unifrnd 创建随机的连续均匀分布的数组
A = unifrnd(-10, 10, [1,10]); %产生一个1x10的随机数矩阵,其元素在-10到10均匀分布。
5. cell 可以存储不同类型的数据.可以是Matlab的类型或者自定义的类型
类型()是cell数组 ,{}是实际类型.结果显示是一致的
MATLAB并行环境
matlabpool local 2; %2是核心数
%parallel program
parfor %并行循环:循环迭代分组,每个worker执行迭代的一部分。每个迭代都必须不依赖其他迭代。由于parfor循环内有通信消耗,当只有小数量的简单计算时使用parfor可能得不到什么好处。
spmd
matlabpool close