求大神解答一个matlab中的for循环嵌套if选择语句

for i=1:19
for j=20:38
if A(i)==A(j)
disp A(i)=A(j)
else continue
end
end

该语句实现功能是 验证38个矩阵是否两两相等 我知道答案只有18个 配对,其中有两个向量不能配对,我要实现这种算法,可是运行结果一直出错。求大神帮忙,谢谢

1、最后缺少一个end;

2、这句输出没什么意义:disp A(i)=A(j);

3、这句完全多余:else continue

 

给你写了一段代码供参考:

% 生成测试数据
 A = [randperm(19) randperm(19)+1]
 c = 0;  % 计数器
 for i=1:19
    for j=20:38
        if A(i)==A(j)
            c = c + 1;
            fprintf('%2i: A(%i)=A(%i)\n',c,i,j)
        end
    end
end

 

输出(由于数据随机生成,每次运行得到的结果不同):

A =
  Columns 1 through 10
    10     4    17    15    14     3     2    11     1     8
  Columns 11 through 20
     9     5     6    12     7    18    16    13    19    19
  Columns 21 through 30
     4     5    18    10     9     7     2     3    14    13
  Columns 31 through 38
    15    16    12    20    17     6     8    11
 1: A(1)=A(24)
 2: A(2)=A(21)
 3: A(3)=A(35)
 4: A(4)=A(31)
 5: A(5)=A(29)
 6: A(6)=A(28)
 7: A(7)=A(27)
 8: A(8)=A(38)
 9: A(10)=A(37)
10: A(11)=A(25)
11: A(12)=A(22)
12: A(13)=A(36)
13: A(14)=A(33)
14: A(15)=A(26)
15: A(16)=A(23)
16: A(17)=A(32)
17: A(18)=A(30)
18: A(19)=A(20)

追问

亲~谢谢你的回答,如果A是一个矩阵呢,应该怎么弄

追答

如果是矩阵,你总应该说明矩阵是什么样的吧?

追问

38列1980行 的矩阵

追答

这样的矩阵,你要做什么样的处理?

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答