在Matlab中将单维矩阵转换为二维矩阵

时间:2012-04-01 17:11:24

标签: matlab

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

                              a = 1  4  7 

                                  2  5  8

                                  3  6  9

如果我做了(4),则值为4.所以它正在读取第一列顶部然后继续下一个....我不知道为什么。然而,

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

                                  a(1,2)= 4

如果我可以通过以下方式调用它,甚至会更好:

                                  a{1}(2)=4

这个过程真正被称为(想要学习)以及如何在matlab中执行。 我想到了一个循环。有内置功能吗? 非常感谢

检查一下: a =

18    18    16    18    18    18    16     0     0     0
16    16    18     0    18    16     0    18    18    16
18     0    18    18     0    16     0     0     0    18
18     0    18    18    16     0    16     0    18    18

>> a(4)
  ans =
  18

>> a(5)
  ans =
  18

>> a(10)
  ans =
  18

我试过重塑。它正在重塑不转换成2个空格

3 个答案:

答案 0 :(得分:1)

要重塑矢量/矩阵/数组,请使用reshape()

答案 1 :(得分:1)

如果您已经有了矩阵,那么您已经可以通过两个索引访问它:

如果你有

                          a = 1  4  7 

                              2  5  8

                              3  6  9

您可以将其作为

进行访问
 a(3,2) = 6

但是,索引从左上角开始,第一行然后是列。如果你想得到矩阵中的“4”,那就做:

a(1,2)

答案 2 :(得分:0)

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

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

NB a(4)= 4,因为您在一维数组中排列列和行的方式,您的“加载”为

R1C1,R2C1,R3C1,R1C2等R是行,C是列 如果这不方便那么你只需要得到任何填充数组行然后列,所以上面的映射将是

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

不要做Matlab所以上面的代码假设数组从0开始,如果不是只加1。