如何在matlab中将文本文件导入到三维矩阵中

时间:2013-06-14 10:33:54

标签: matlab

我有一个文本文件,其中数据的格式为x / y / z / value。

说对于前。 0/0/0 / 12.0

如何将其导入matlab,以便将其作为具有的3维矩阵作为相应的(x,y,z)值

1 个答案:

答案 0 :(得分:1)

首先,将您的2D坐标/值矩阵导入Matlab,可能使用dlmread

M = dlmread(filename, '/');

如Shai所述,您需要将坐标转换为1偏移而不是0偏移:

M(:,1:3) = M(:,1:3) + 1;

接下来,创建一个适当大小的矩阵,将值插入。

foo = zeros(max(M(:,1)), max(M(:,2)), max(M(:,3)));

最后,使用sub2ind将您的坐标转换为indeces,然后插入值。

idx = sub2ind(size(foo), M(:,1), M(:,2), M(:,3));
foo(idx) = M(:,4);