优化matlab中带有for循环的代码
对需要在for循环中使用的变量进行预分配内存。
可以使用zeros和ones函数给数值型数组分配空间,使用cell函数给单元数组分配空间,使用struct给结构体分配空间。
示例:
clear all;clc;
tic
y(1) = 1;
for i = 1 : 100000
y(i + 1) = i * 10 + 0.9986 * y(i);
end
toc
对变量进行预分配内存
clear all;clc;
tic
y = zeros(1,100000);
y(1) = 1;
for i = 1 : 100000
y(i + 1) = i * 10 + 0.9986 * y(i);
end
toc
可以很明显的看出来,对变量进行预内存分配可以提高运行效率。
元胞数组某一元素索引值的获取
假设有两个元胞数组a和b。a中存放的是特征的名称,b中存放的是特征对应的值。若要获取某一特征名对应的值时,可使用strcmp函数。具体如下
b = {1 2 3 4};
a = {'hahha','hgdioahg','湖广会馆&