-1-
在使用cell2mat将cell(n,1)转数组时发现,生成了一个n行的二维数组;
而转换cell(1,n)则会生成一维数组
-2-
在以下情况,使用元胞进行赋值速度更快,不知道其原理是什么,求大神看到了解释下呗。
c=[1 5 1 5 1]; %电价
tz=[20 20 20 20 20]; %电价时段
[~,tzn]=size(tz); %获取tz的列数,忽略行数
tic;
cc=zeros(1,sum(tz)); %用于储存每个时刻的电价
for i=1:tzn
en=sum(tz(:,1:i)); %找到赋值的终点
st=en-tz(:,i)+1; %找到赋值的起点
cc(:,st:en)=c(i)*ones(1,tz(i)); %为cc赋值i时段的电价
end
toc
tic;
dd= cell(tzn,1);
for i=1:tzn
dd{i}=c(i)*ones(1,tz(i));
end
ee=cell2mat(dd');
toc
运行结果
>> smalltest
时间已过 0.006865 秒。
时间已过 0.002638 秒。
速度还是快了很多的。