matlab sub2ind

A=[1:3;4:6];
D=sub2ind(size(A),[1,1],[2,3])
D的值为( )。
答案为什么是3 5

返回(1,2)和(1,3)的线性下标
A是
1 2 3
4 5 6
1~6的顺序是 1 3 5 2 4 6 先按列再按行走

https://blog.csdn.net/jk_101/article/details/110948646

A=[ 1 2 3;
4 5 6]
返回位置在[1,2]和[1,3]的元素的索引值;
[1,2]即第一行第二列的元素,也就是2;
索引按列来数,第一列从上到下,然后第二例...,上面2是第3个数,即3


D=sub2ind(size(A),[1,1],[2,3]),其中[1,1]代表行,[2,3]代表列
一一对应就是索引出[1,2][1,3]的坐标
因为MATLAB中数据是按列的方式存储的,所以:
A =1     3     5
     2     4     6
D =3 5

望采纳

MATLAB中的sub2ind函数用于将二维矩阵中的行列坐标转换为一维索引。

你的例子中,有二维数组A,大小为2x3,并使用sub2ind函数将其中的行列坐标[1,2]和[1,3]转换为一维索引。

  • 首先,size(A)用来获取A的大小,结果为[2,3],表示A具有2行和3列。
  • 然后,我们可以使用sub2ind函数将行列坐标转换为一维索引。 在这种情况下,我们传递A的大小[2,3],以及要转换为一维索引的行列坐标[1,1]和[1,3]。
  • 这将导致sub2ind函数返回一个向量,其中包含将行列坐标转换为一维索引后的结果。 在这种情况下,返回的向量D将包含两个值:第一个是将行列坐标[1,2]转换为一维索引后的结果,第二个是将行列坐标[1,3]转换为一维索引后的结果。

因此答案为D的值是[3,5]。