求助如何计算两个矩阵中一行的三个元素均相同的行的个数
求助如何计算两个矩阵中一行的三个元素均相同的行的个数
有两个矩阵,均为3列,行数不同:
a = [1 2 3; 3 4 5; 6 7 8; 9 10 11; 22 23 26; 77 78 79; 41 48 54];
b = [1 2 3; 3 4 5; 13 14 15; 43 22 11];
想要做如下比较:比如将a的第一行中三个元素分别与b中的每一行元素进行比较,之后再分别将a的第二行中的三个元素分别与b中的每行中的元素进行比较,最后总计a与b中有多少行中的元素是完全相同的.
我请朋友,编了如下代码,不过有bug,本人实在是不知道怎么改,
for i = 1:7
index_of_b_row = find(a(i,1)) == b(:,1);
m = size (index_of_b_row,1);
for j = 1:m
if a(i,2) ==b(index_of_b_row,2) & a(i,3) == b(index_of_b_row,3)
index(j) =index_of_b_row;
j = j + 1;
end
end
end
same_point_position = b(index,:);
你单步执行下不就完了,检查下是哪一步与你的想法不一致,调试出来不就完啦.
我这边没装Matlab,其实你只要按F10,一步一步执行一遍不就完了,你的程序执行步骤也不多,很快就调处来啦.
F10单步运行.
你这个
index_of_b_row =find(a(i,1)) == b(:,1);写法肯定是不对的,
index_of_b_row =find(a(i,1) == b(:,1));
因为没装所以没办法帮你调啦.
建议你改了这句,在F10单步运行运行,看看能满足你的要求.另外,建议关注下Command Windows里的错误信息提示内容.