1.向量化
e x a m p l e : example: example:计算 1 到100 之间的所有整数的平方,平方根,立方根。
利用向量化的方法进行计算:
ii = 1:100;
square = ii .^2;
square_root = ii .^ (1/2);
cube_root(ii) = ii .^ (1/3);
解决了for循环速度慢的问题,下面for循环的方法不提倡。
for ii = 1:100
square(ii) = ii ^2;
square_root(ii) = ii ^ (1/2);
cube_root(ii) = ii ^ (1/3);
end
2.逻辑数组方法
e x a m p l e : example: example:计算二维数组a中大于5的元素的平方根,然后其余的数的平方。a具体如下:
a = [1 2 3; 4 5 6; 7 8 9];
下面使用逻辑数组的方法只要三行,读者可自行打印b来查看一下逻辑数组b就能知道是什么含义。
b = a > 5;
a(b) = sqrt(a(b));
a(~b) = a(~b) .^2;
解决了for循环和判断语句的速度慢的问题,下面for循环的方法不提倡。
for ii = 1:size(a,1)
for jj = 1:size(a,2)
if a(ii,jj) > 5
a(ii,jj)=sqrt(a(ii,jj));
else
a(ii,jj) = a(ii,jj)^2;
end
end
end
笔记摘录自:
[1] S.J.Chapman《MATLAB编程》中文版