请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?如有一个mX2的矩阵A,每行保存的是矩阵B部分元素的坐标,想将矩阵B中对应的A中元素置为1,除了循环给每个元素置1,请问还有什么

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 18:09:35
请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?如有一个mX2的矩阵A,每行保存的是矩阵B部分元素的坐标,想将矩阵B中对应的A中元素置为1,除了循环给每个元素置1,请问还有什么

请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?如有一个mX2的矩阵A,每行保存的是矩阵B部分元素的坐标,想将矩阵B中对应的A中元素置为1,除了循环给每个元素置1,请问还有什么
请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?
如有一个mX2的矩阵A,每行保存的是矩阵B部分元素的坐标,想将矩阵B中对应的A中元素置为1,除了循环给每个元素置1,请问还有什么好方法?

请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?如有一个mX2的矩阵A,每行保存的是矩阵B部分元素的坐标,想将矩阵B中对应的A中元素置为1,除了循环给每个元素置1,请问还有什么
建议楼上的回答之前自己试一试,以免误人误己.
 
如果要提取矩阵元素,我能想出来的有三种方法,但如果要改变这些位置元素的值,我能想出来的只有一种方法.

示例(为了与其它元素区别,赋值用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))

请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?如有一个mX2的矩阵A,每行保存的是矩阵B部分元素的坐标,想将矩阵B中对应的A中元素置为1,除了循环给每个元素置1,请问还有什么 matlab如何去掉矩阵中的指定元素 请问Matlab如何给符合某条件的元素批量赋值?比如一个矩阵mxnx4的矩阵A,在A(:,:,1)中的元素为1时,A中第3维相应第2、3个元素分别赋予某值(如100,101),A(:,:,1)中的元素为2时,A中第3维相应第2、3个 如何随机提取matlab矩阵中一个元素的位置关于matlab矩阵问题 请问Matlab如何提取三维矩阵的一个面,并且变为两维?例如A是一个100X100X3的矩阵,用A(m,n,:)把第m行、第n列对应元素提取出来,但提取出来的元素是1X1X3矩阵,如何把它变成1X3的矩阵? matlab怎样提取提取一个矩阵中的某些元素?比如Y=[12 3 30 4 5 10 23 41 2 32]我想令Y1为Y中所有大于等于10的元素,请问应该怎么弄?谢谢了 matlab怎样提取出矩阵元素的正负号 matlab中的一个10x10的矩阵,矩阵中的元素从0-9中选择,随机分布,请问如何把矩阵中相同的元素放在一个区 matlab 怎样去掉矩阵中的零元素 请问如何对matlab中的元素进行操作请问,怎么对matlab的矩阵或数组中的元素单独进行操作?比如说,X=[a1 a2 a3 a4],我想求Y=[1/a1 1/a2 1/a3 1/a4], simulink 里如何提取矩阵中的某一行某一列的元素 如何提取出cell中具体数据 matlab以上为一个289乘1的cell其实每一个元素都是一个矩阵(如(1,1))我现在想要将这289个矩阵内元素提取后对应相加,请问如何处理 matlab如何引用三维矩阵中的某一个元素比如三维矩阵A(:,:,1)=[1,2,3,4,5]',如何引用矩阵中的第一个元素? matlab中如何提取稀疏矩阵中元素的坐标矩阵A=[0,0,1,1;1,0,0,1;0,1,1,0],如何扫描提取值为1的全部元素的坐标? 请问如何将MATLAB程序中矩阵第j行数值赋予第j列元素? matlab中如何分别画一个矩阵中的每列元素的图像? MATLAB中如何判断一个矩阵中的元素都大于某一值 matlab 如何做到让矩阵中的每个元素从1到4循环?