For loop 通过对称矩阵循环

For loop 通过对称矩阵循环,for-loop,For Loop,我想把两个具有相同索引的矩阵的所有元素画在一起。如果这两个矩阵 给出了A=[14;45]和B=[23;36] 要绘制的对将是(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

我想把两个具有相同索引的矩阵的所有元素画在一起。如果这两个矩阵

给出了
A=[14;45]
B=[23;36]

要绘制的对将是
(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到n循环i,然后从i到n循环j来实现

这将遍历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

要作为三角形遍历的矩阵部分?如果是这样,那么你应该把i从1循环到n,但是把j从i循环到n,而不是从1循环到n。如果是这样的话,我会马上给出一个正确的答案。因此,如果我们有[ 0,1,2;1,0;3,2 3 0 ]和[0 5 6;6α;α],我们基本上可以考虑上三角形和图(0,0),(1,5),(2,6),(3,7)..主对角线实际上是全部(0,0)..我们忘记了“保持”命令(否则它只画一个点),否则就完美了。非常感谢。