我有一个文本文件,其中数据的格式为 x/y/z/value。
比如说前。0/0/0/12.0
如何将它导入 matlab 以便我将其作为一个 3-d 矩阵,其值为对应的 (x,y,z) 值
我有一个文本文件,其中数据的格式为 x/y/z/value。
比如说前。0/0/0/12.0
如何将它导入 matlab 以便我将其作为一个 3-d 矩阵,其值为对应的 (x,y,z) 值
首先,将坐标/值的二维矩阵导入 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);