我有一个关于如何构建循环的问题。我有一个双数组,我想编写该进程。
这是我想要应用这个过程的数组,长度是4x4(我只做第一个,但原来是4x4x3)。
b1= (:,:,1);
我想申请这个过程的每一个价值:
1.-每次创建一个向量,包含数组中每个值的信息。
ma= 0;
for p=(136:136)
ma(p)=b1(1,1,1);
end
for p=(312:2151)
ma(p)=0
end
ma= ma';
然后,我必须处理以下过程的最后一个结果(我之前定义了变量)。 spout1_a = spb1y.ma; spout1_b = spout1_a./spsum_pesos1; spout1_c = sum(spout1_b);
问题是我知道怎样才能为一个值(第一个)做到这一点,而不是对所有值都这样做。我该怎么做?
问候并非常感谢你,
艾玛
修改
b1= Refl(:,:,1);
load sp1.txt;
spb1y= sp1(:,1);
spsum_pesos1= sum(spb1y);
output = cell(length(banda1), 5); % this works well
for i = 1:numel(b1)
ma = zeros(2151,1);
ma(136) = output(i);
spout1_a= spb1y.*ma;
spout1_b= spout1_a./spsum_pesos1;
spout1_c= sum(spout1_b); % I want to save that result on every value of the matrix
end
我最后写这篇文章了吗?
答案 0 :(得分:1)
简单的解决方案是为每个变量添加索引q,然后从q = 1:3
循环b(q)= Matrix(:,:,q)
ma(p,q)
诸如此类
答案 1 :(得分:1)
以下是在MATLAB中编写代码的几点:
话虽如此,你可以试试这个:
% # Iterate over each value in 'b1'
for i = 1:numel(b1)
% # Create a vector 'ma'
ma = zeros(2151, 1);
ma(136) = b1(i);
% # Do some more calculations with 'ma' ...
spout1_a = ma;
spout1_b= spout1_a ./ spsum_pesos1;
spout1_c= sum(spout1_b);
end
我不确定你想要达到什么目标,但这段代码完全符合问题的描述。