2013-06-14 4 views
0

У меня есть текстовый файл, в котором данные имеют формат x/y/z/value.Как импортировать текстовый файл в трехмерную матрицу в matlab

сказать, например. 0/0/0/12,0

Как импортировать его в Matlab, так что я получаю его как 3-й матрице, имеющей значение как соответствующий (, у, г х) значение

+0

Что вы пробовали? – Oleg

ответ

1

Во-первых, импортируйте вашу 2D-матрицу координат/значений в Matlab, возможно используя dlmread.

M = dlmread(filename, '/'); 

Как отметил Шай вы хотите, чтобы преобразовать координаты 1-смещение, а не 0-смещение:

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

Далее создайте соответствующего размера матрицы для вставки значения в.

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

Наконец, конвертировать свои координаты с помощью индексов sub2ind и вставьте значение.

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

Я вижу, что значения индексов в примере начинаются с нуля, а не один - вам может потребоваться добавить + в 'M (:, 1: 3)' – Shai

+0

Спасибо, что я очень много нового для Matlab, просто хотел этого для isosurface .. : D –

+0

@Shai, да хороший улов. (ответ на обновления, чтобы включить это) – Alan