2014-02-06 4 views
0

Предполагая, что у вас есть массив из 5 строк на столбцах n как переменная MATLAB. Как сохранить в файле каждый столбец массива в новый массив следующим образом:Как сохранить данные, переносимые в файле с разделителями табуляции

column1 становится линией1 и т. Д.

мне это нужно, чтобы быть без запятые между элементами, так что должно быть что-то вдоль линий

dlmwrite('pointcloud.pts', cloud, 'delimiter', '\t'); 

enter image description here

производит

enter image description here

, но я хочу, столбец один к сохраняться как строка 1.

+0

Так что же случилось с вашим текущим использованием 'dlmwrite'? Может, вам просто нужно перенести «облако»? – horchler

+0

Я добавил фотографию – valentin

+0

Ваши фактические данные обычно не помогают в задании вопроса здесь, потому что у нас нет доступа к нему и он не может использовать его для запуска кода. В этом случае изображение мало добавляет. Вместо этого вы должны создать примерную матрицу, как это сделано @ 13aumi, чтобы проиллюстрировать, что происходит и каково ваше желаемое поведение. [Для справок в будущем] (http://stackoverflow.com/help/mcve). – horchler

ответ

1

Я думаю, вам нужно только транспонировать вашу матрицу. Вот пример:

n = 7; 
test = rand(5, n); 
dlmwrite('pointcloud.pts', test', 'delimiter', '\t'); 

Для меня это прекрасно работает. -> '< - это оператор транспонировать ... Или я понял, что вы ошибаетесь?

EDIT: Похоже, я думаю, что вы все еще сохраняете не транспонированную матрицу. Таким образом, в вашем случае вы по-прежнему сохраняете первые 443250 элементов первой строки в первой строке вашего файла. Перенося данные с апострофом, вы переносите данные и можете правильно их хранить. Посмотрите на мой код: вы увидите один апостроф (как оператор для транспонирования) после> теста <.

Вы можете видеть, что, например, если вы наберете:

a = rand(2, 4); 
a_transposed = a'; 
+0

Я добавил некоторую картинку, чтобы показать, что я получаю – valentin

+0

спасибо, что транспонирование делает работу – valentin

Смежные вопросы