【问题标题】:get a matrix at the end of the loop在循环结束时得到一个矩阵
【发布时间】:2017-02-08 13:18:10
【问题描述】:

如何在循环结束时获得矩阵中的所有 C?

for i=1:size(A,1)
   for j=1:size(B,1)
       if B(j,3)==A(i,3)
       C=B(j,3);
       end
   end
end

【问题讨论】:

  • 您可以将它们附加到矢量:C = [C, B(j,3)];.

标签: matlab for-loop matrix


【解决方案1】:

要收集所有符合您条件的C,您可以将它们附加到矩阵中:

C = [];
for i=1:size(A,1)
    for j=1:size(B,1)
        if B(j,3)==A(i,3)
            C = [C, B(j,3)];
        end
    end
 end

但如果我理解,您想要一个矩阵 C,其中包含 B(:,3) 的所有元素,这些元素也在 A(:,3) 中?

你可以这样做

C = B(ismember(B(:,3), A(:,3)), 3);

例如,

X = [5 9 8];
Y = [1 2 3 4 5 6 7 8];
X(ismember(X,Y))

% ans =
%    [5 8]

【讨论】:

  • 谢谢,我会像你说的那样使用函数ismember :-)
猜你喜欢
  • 2015-03-27
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 2023-03-04
  • 2019-03-15
  • 1970-01-01
相关资源
最近更新 更多