Matlab 单列矩阵索引

Matlab 单列矩阵索引,matlab,matrix,multidimensional-array,Matlab,Matrix,Multidimensional Array,我得到了一个.tcl文件,其中的数据表示一个大型三维矩阵,所有与矩阵相关的值都附加在一列中,如下所示: 128 128 512 3.2867 4.0731 5.2104 4.114 2.6472 1.0059 0.68474 ... N = 128*128*512; mat = reshape(tab(2:N+1,1),[128 128 512]); 如果我将文件加载到命令窗口并whos变量中,我有: whos K Name Size

我得到了一个.tcl文件,其中的数据表示一个大型三维矩阵,所有与矩阵相关的值都附加在一列中,如下所示:

128 128 512
3.2867
4.0731
5.2104
4.114
2.6472
1.0059
0.68474
...
N = 128*128*512;
mat = reshape(tab(2:N+1,1),[128 128 512]);
如果我将文件加载到命令窗口并
whos
变量中,我有:

 whos K
  Name            Size                Bytes  Class     Attributes

  K         8388810x3             201331440  double     
这两个附加列似乎用
NaN
s填充,而原始文件中没有出现。这是MATLAB存储三维矩阵的标准方法吗?我更熟悉.mat存储矩阵的方式,我想知道是否有一个快速命令可以让我将其还原为更友好的格式。

文件的第一行(
128 512
)给出了3列。我不知道为什么会有这么多额外的行(128*128*512=8388608),但您的3d矩阵可能可以这样构造:

128 128 512
3.2867
4.0731
5.2104
4.114
2.6472
1.0059
0.68474
...
N = 128*128*512;
mat = reshape(tab(2:N+1,1),[128 128 512]);
加载的表的最后一百行是什么?

文件的第一行(
128 512
)给出了3列。我不知道为什么会有这么多额外的行(128*128*512=8388608),但您的3d矩阵可能可以这样构造:

128 128 512
3.2867
4.0731
5.2104
4.114
2.6472
1.0059
0.68474
...
N = 128*128*512;
mat = reshape(tab(2:N+1,1),[128 128 512]);

加载的表的最后一百行是什么?

如果所有值都存储在一列中,为什么第一行有三个值?为什么有这么多额外的行?(8388810对8388608)这两个问题都很好。第一行有三个值,因为文件最初被格式化为Fortran脚本的输入;我只是在重新分配东西。它基本上是作为标题输出的,并附加了数据。但是,如果我忽略这一行,仍然会留下201行额外的数据,如前所述。我正在追踪原始来源以解决这个问题。尽管如此,抛开这种反常现象不谈,重塑解决方案还是非常有效的。谢谢如果所有值都存储在一列中,为什么第一行有三个值?为什么有这么多额外的行?(8388810对8388608)这两个问题都很好。第一行有三个值,因为文件最初被格式化为Fortran脚本的输入;我只是在重新分配东西。它基本上是作为标题输出的,并附加了数据。但是,如果我忽略这一行,仍然会留下201行额外的数据,如前所述。我正在追踪原始来源以解决这个问题。尽管如此,抛开这种反常现象不谈,重塑解决方案还是非常有效的。谢谢