循环通过对称矩阵

时间:2014-06-19 09:46:01

标签: for-loop

我想绘制两个具有相同索引的矩阵的所有元素。所以,如果两个矩阵

提供了

A = [1 4; 4 5]B = [2 3; 3 6]

要成为plottet的对将是(1/2)(4/3)(4/3)(5/6)

但是我的代码中的矩阵是对称的,我想避免遍历整个矩阵(如果我们已经绘制了(4/3),那么如果再次出现这对值,我将避免循环) 。我怎样才能做到这一点? 使用当前代码:

 for i = 1:size(A,1)
    for j = 1:size(A,1)     
      plot(A(i,j),B(i,j))
     end
 end

我显然有裁员..

1 个答案:

答案 0 :(得分:2)

您只想遍历矩阵的一个三角形。

你可以通过循环i从1到n然后循环j到i到n来实现。

这遍历n(n + 1)/ 2而不是n * n个条目。

for i = 1:size(A,1)
    for j = i:size(A,1)     
      plot(A(i,j),B(i,j))
     end
end