
matlab判断一个向量是否与一个矩阵中任意一行相等 例如a=[1,2] b=[1,5;3,4;5,6;1,2] 最好不用循环语句。谢
3个回答
展开全部
如果你知道b只有几行,可以不用循环
>> t1=find(a(1)==b(:,1))
t1 =
1
4
>> t2=find(a(2)==b(:,2))
t2 =
4
这样就知道第4行与a相等。
但对于大的矩阵或未知大小的矩阵不用循环好像不太好做。
>> t1=find(a(1)==b(:,1))
t1 =
1
4
>> t2=find(a(2)==b(:,2))
t2 =
4
这样就知道第4行与a相等。
但对于大的矩阵或未知大小的矩阵不用循环好像不太好做。
展开全部
c1=b(:,1)==a(1);
c2=b(:,2)==a(2);
c=c1&c2;
find(c)
c2=b(:,2)==a(2);
c=c1&c2;
find(c)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
规范的写法不用循环难以达到楼主的要求,因为语句要面向一般情况书写。
用循环的话,如下:
alpha = ?; %在此输入行向量
M = ?; %在此输入矩阵
RowM = size(M,1); %M的行数
Ind = [];
k = 1;
while k<=RowM & sum(alpha==M(k,:)) == RowM
Ind = [Ind k];
k = k + 1;
end
disp(['向量alpha与矩阵M的第 ' num2str(Ind) ' 行相同'])
%OK, enjoy!
用循环的话,如下:
alpha = ?; %在此输入行向量
M = ?; %在此输入矩阵
RowM = size(M,1); %M的行数
Ind = [];
k = 1;
while k<=RowM & sum(alpha==M(k,:)) == RowM
Ind = [Ind k];
k = k + 1;
end
disp(['向量alpha与矩阵M的第 ' num2str(Ind) ' 行相同'])
%OK, enjoy!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询