找一个矩阵元素在另一个矩阵的位置可以使用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
查一下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中的位置
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矩阵中的元素找出来。