计算if/else语句的结果并将其写入矩阵



我想在代码中存储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 

您可以将ListeListe2存储为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值。

相关内容

  • 没有找到相关文章

最新更新