在for循环的每个循环中正确输出新分配

时间:2018-11-06 12:59:00

标签: matlab for-loop

我希望此for循环的每次迭代都输出一个新答案。目前,它正在将fluence更新为最后一个循环输出。

for i = 1:nx
    fluence= data1cm(i).data(:,3).*25000000.*(energygap);
    %dim=size(c)
    %'fluence' num2str((i)+1)= fluence;
end

1 个答案:

答案 0 :(得分:2)

就像索引到data1cm(i)一样,您可以用相同的方式将值保存到fluence中,例如如果data1cm(i).data(:,3).*25000000.*(energygap)的结果是标量,则可以这样做

for i = 1:nx
    fluence(i)= data1cm(i).data(:,3).*25000000.*(energygap);
end

然后fluence将是所有结果的1 * nx数组。

为了提高效率,应该始终初始化变量,即使用一些临时值创建变量,然后覆盖这些值。

fluence = zeros(1,nx);
for i = 1:nx
    fluence(i)= data1cm(i).data(:,3).*25000000.*(energygap);
end

这里,我用零初始化fluence,然后所有这些零都被data1cm(i).data(:,3).*25000000.*(energygap);的结果覆盖。其他初始化例如onesnan