我想在代码中存储for循环的结果(以"for o=1:length(gwi("开头(,在矩阵中使用哪个语句("<a",">=a&<b",…(的频率。我已经尝试用数字(1-4(记录该值"0";Liste2";。但现在我有一个问题,我不知道如何对大for循环的所有722次迭代(k(执行此操作,因此在最后,我为722次循环中的每一次获得一列矩阵。此外,不幸的是,数组的长度各不相同。
(简化(代码如下:
for k = 1:722
gwi = abs(wi);
Liste = zeros(length(gwi),1);
Liste2 = zeros(length(gwi),1);
for o = 1:length(gwi)
if gwi(o) < a;
Liste(o) = 1;
Liste2(o) = 1;
elseif gwi(o) >= a & gwi(o) < b;
Liste(o) = a / gwi(o);
Liste2(o) = 2;
elseif gwi(o) >= b & gwi(o) < c;
Liste(o) = a * ((c-gwi(o))/((c-b)*gwi(o)));
Liste2(o) = 3;
else gwi(o) >= c;
Liste(o) = 0;
Liste2(o) = 4;
end
end
end
您可以将Liste
和Liste2
存储为2D矩阵而不是数组,因此
% Initialise List matrices before both loops
gwi = abs(wi);
N = 722;
Liste = zeros(length(gwi),N); % Note "N" columns
Liste2 = zeros(length(gwi),N); % Note "N" columns
for k = 1:722
for o = 1:length(gwi)
if condition1
Liste(o,k) = sin(o); % some calculation for condition 1
Liste2(o,k) = 1; % Condition number for index (o,k)
elseif condition2
Liste(o,k) = exp(o); % some calculation for condition 2
Liste2(o,k) = 2; % Condition number for index (o,k)
% elseif ...
end
end
end
结果将是矩阵,其中每列对应一个k
循环,每行对应o
值。