Matlab中一维矩阵到二维矩阵的转换

Matlab中一维矩阵到二维矩阵的转换,matlab,Matlab,我不知道我是否使用了确切的术语。我试图在网上找到答案。 以下是我需要的: 我有一个matix a = 1 4 7 2 5 8 3 6 9 如果我做a(4),值是4。所以它是从第一列顶部到按钮,然后继续到下一列。。。。我不知道为什么。但是, 我需要的是使用两个索引来命名它。作为行和列:

我不知道我是否使用了确切的术语。我试图在网上找到答案。 以下是我需要的: 我有一个matix

                              a = 1  4  7 

                                  2  5  8

                                  3  6  9
如果我做a(4),值是4。所以它是从第一列顶部到按钮,然后继续到下一列。。。。我不知道为什么。但是,

我需要的是使用两个索引来命名它。作为行和列:

                                  a(1,2)= 4
如果我可以用以下方式来称呼它,那就更好了:

                                  a{1}(2)=4
这个过程的真正名称是什么(想要学习)以及如何在matlab中执行。 我想到了一个循环。有内置的功能吗 非常感谢

选中此项: a=


我试着重塑。它正在重塑而不是转换为2个索引

要重塑向量/矩阵/数组,请使用。

或者您可以将其保留为一维数组,只需使用

((列-1)*3)+行-1)
作为索引。3因为有三列

nba(4)=4由于您在一维数组中排列列和行的方式,您的列和行被“加载”为

R为行,C为列时的R1C1、R2C1、R3C1、R1C2等 如果这不方便,那么您只需要获取填充数组行然后列的内容,这样上面的映射就可以了

((Row - 1) * 3) + Column - 1)

不要这样做,上面的代码假设数组从0开始,如果不只是向其中添加1。

如果您已经得到了一个矩阵,您已经可以使用两个索引访问它:

如果你有

                          a = 1  4  7 

                              2  5  8

                              3  6  9
您可以通过以下方式访问它:

 a(3,2) = 6
但是,索引从左上角开始,先行后列。如果您想获得矩阵中的“4”,请执行以下操作:

a(1,2)

在我看来,这不像向量。它是什么@Oli?我之前说过,我不知道我是否使用了正确的术语。在我看来,它就像一个矩阵。那么如何转换呢?我想调用它以供其他使用二维约定的函数使用。上面是转换。GetValue(行,列)=a[(列-1)*3)+行-1)很好的通用建议,但是MATLAB有特殊的语法用于索引到N维矩阵-所以像这样的肮脏技巧是不必要的。使用高级语言不是很好吗?;)这个技巧没有什么肮脏之处,你认为矩形数组是如何排列的?在1975年学会的…col as in column argument或variable、 你是对的@Nate好吧,我试过它现在不起作用了是的,它起作用了。但是如果它是一个有2个索引接受a(1)的矩阵,怎么会呢!!这只是Matlab的一个功能:)。通过一个索引访问它将获取值,就像将列堆叠到一个向量中一样。要详细说明@Nate的评论,一个原因矩阵支持
a(i,j,k)
索引和
a(i)
索引是为了在不需要嵌套循环的情况下仍然可以在每个元素上循环。例如,i=1:product(size(A))。请注意,大多数MATLAB函数都接受矩阵输入,因此在实践中您不必这样做-但您可以。;)还可以提交到内存:“MATLAB中的矩阵按行大顺序排列。MATLAB中的矩阵按行大顺序排列。MATLAB中的矩阵为…”
a(1,2)