亲爱的,我正在努力解决我的一个问题。我必须处理15个变量,其结果将迭代生成。我必须为每个变量存储每次迭代的结果。我将在两个循环下运行我的程序。一个是内循环,另一个是外循环。在内部循环中,我将为15个变量中的12个存储每次迭代的结果,比如在数组中,然后对于外部循环,我还将保存剩余3个变量的结果。简单来说,我可以借助数组来做到这一点。但我不想引入这么多阵列。你能建议我,是否可以使用结构或CellArrays?如果你在上面提到的结构下写一个小程序,我将非常感激。我可以添加一个我的代码的小例子
X1 = zeros(a,1);
X2 = zeros(a,1);
X3 = zeros(a,1);
X4 = zeros(a,1);
X5 = zeros(a,1);
X6 = zeros(a,1);
X7 = zeros(a,1);
X8 = zeros(a,1);
X9 = zeros(a,1);
X10 = zeros(a,1);
X11 = zeros(a,1);
X12 = zeros(a,1);
X13 = zeros(b,1);
X14 = zeros(b,1);
X15 = zeros(b,1);
for i = 1:b
for j = 1: a
X1(i)= some calculation
X2(i) = some calculation
...... and so on till
X12(i) = some calculation
end
x13(j)=some calculation
X14(j)= some calculation
X15(j) = some calculation
end
最后我想以表格的形式显示结果。是否可以将其转换为结构/ cellarray?
答案 0 :(得分:0)
我看到前12个数组共享相同的长度,所以你可以把它们放在一个矩阵中,矩阵的列是你的数组,最后3个数组是相同的
x1 = zeros(a,12);
x2 = zeros(b,3);
for i = 1:a
for k = 1:12
x1(i,k) = i+k; %// do something else
end
end
for i = 1:b
for k = 1:3
x2(i,k) = i+k; %// do something else
end
end
编辑:您也可以使用
定义的结构来执行此操作a = 5; b = 4; S = struct('x1',zeros(a,1),'x2',zeros(a,1),'x15',zeros(b,1));
S =
x1: [5x1 double]
x2: [5x1 double]
x15: [4x1 double]
您可以修改:
>> S.x2(3) = 3+3;
你可以这样画出
>> S.x2
ans =
0
0
6
0
0