使用矢量元素选择矩阵元素

  • 本文关键字:元素 选择 matlab matrix
  • 更新时间 :
  • 英文 :


在Matlab中有没有一种方法可以根据向量中的元素来选择矩阵元素?我认为我的描述不清楚,但我实际上想做的是类似于:

A=zeros(3,3,3) %3d matrix
A(1,1,2)=5
b=[1,1,2]
A(b)=5

这意味着,使用向量中的条目作为参数,从矩阵中选择一个元素的一些简单方法。这个确切的例子不起作用,因为最后一行把b算作一个参数,而不是三个。我可以写A(b(1(,b(2(,b。

方法1:使用sub2ind查找线性索引

您可以定义一个名为findLinearIndex的函数,使其将矢量元素转换为A:的线性索引

findLinearIndex = @(A,b) sub2ind(size(A), b(1), b(2), b(3))
A(findLinearIndex(A,b)) = 5

方法2:通过num2cell将矢量转换为单元格数组

然后,您可以使用{:}来获取索引

b_cell = num2cell(b) ;
A(b_cell{:}) = 5

相关内容

  • 没有找到相关文章

最新更新