matlab 中如何从一个矩阵中找到另一个矩阵中的所有元素的位置?

2024-11-09 10:26:03
推荐回答(3个)
回答1:

找一个矩阵元素在另一个矩阵的位置可以使用MATLAB的内置函数ismember(A,B):

% 例如
A = rand(3);
B = rand(5); 
B(2,3) = A(2,3); % 使A、B之间有相同元素
[Lia,Locb] = ismember(A,B);
% Lia 为1则改为对应元在B中出现,具体位置可以看Locb

回答2:

查一下ismember函数的帮助吧
A= [1 2 3 4 5 6 10 12 13 15 16 18];
B = [1 3 5 10 15];
[tf loc] = ismember(B,A)
运行结果如下:
tf =

1 1 1 1 1

loc =

1 3 5 7 10
其中,tf为A中是否含有B的元素(与B的每一个元素对应),loc为B中元素在A中的位置

回答3:

1、解决代码是:

clear all
clc
x = rand(3, 5)
y=rand(3,5)
[vx, ix] = max(x);
s = 0 : 3 : 12; % 3 is the row number, 6 is the 3 * 5 - 3
result=y(ix + s)
2、代码解析:
通过rand产生max矩阵,0:3:12的操作就可以将max矩阵中的元素找出来。