在MATLAB中怎样获得矩阵中元素的坐标

发布网友 发布时间:2022-04-20 14:40

我来回答

2个回答

热心网友 时间:2023-10-03 07:04

如果要提取矩阵元素,我能想出来的有三种方法,但如果要改变这些位置元素的值,我能想出来的只有一种方法。

示例(为了与其它元素区别,赋值用NaN):
% 生成测试数据B = magic(5);
B = B(1:3, :)
[r,c] = find(B>20);
A = [r c]

% 将B中以A作为下标的元素置为NaN
B((A(:,2)-1)*size(B,1)+A(:,1)) = NaN
输出:
>> B = magic(5);
>> B = B(1:3, :)
B =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
>> [r,c] = find(B>20);
>> A = [r c]
A =
2 1
1 2
3 5
>> B((A(:,2)-1)*size(B,1)+A(:,1)) = NaN
B =
17 NaN 1 8 15
NaN 5 7 14 16
4 6 13 20 NaN
附:提取矩阵元素的三种方法:
diag(B(A(:,1),A(:,2)))
arrayfun(@(r,c)B(r,c),A(:,1),A(:,2))
B((A(:,2)-1)*size(B,1)+A(:,1))

热心网友 时间:2023-10-03 07:04

x=[1 2 3;4 5 6;7 8 9]
[i,j]=find(x==7)

x =

1 2 3
4 5 6
7 8 9

i =

3

j =

1

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com