【发布时间】:2020-11-25 18:23:54
【问题描述】:
该函数从多个mat文件中读取数据,并保存在多个txt文件中。但是数据(每个值)在一列中保存一个值,依此类推。我想在文本文件中以三列(坐标)的形式保存数据,所以每一行都有三个由空格分隔的值。在将数据保存到文本文件之前重塑数据不起作用。我知道 dlmwrite 应该修改为在三个值之后换行,但是如何?
mat = dir('*.mat');
for q = 1:length(mat)
load(mat(q).name);
[~, testName, ~] = fileparts(mat(q).name);
testVar = eval(testName);
pos(q,:,:) = testVar.Bodies.Positions(1,:,:);
%pos=reshape(pos,2,3,2000);
filename = sprintf('data%d.txt', q);
dlmwrite(filename , pos(q,:,:), 'delimiter','\t','newline','pc')
end
我的数据结构:
这些数据应该从每个 mat 文件中提取出来并存储在相应的文本文件中,如下所示:
332.68 42.76 42.663 3.0737 332.69 42.746 42.655 3.0739 332.69 42.75 42.665 3.074
【问题讨论】:
-
请参阅this answer of mine 和其中的参考资料。如果可以避免使用
eval,请参阅 max' 答案,避免使用它。有很多与之相关的问题(由于 JIT 禁用、代码模糊、格式化整个计算机的潜在危害等导致的极端性能损失)。 -
请停止编辑您的问题,大幅更改它们。不是在使现有答案无效时,也不是突然添加一种完全不相关的语言。顺便说一句,这会使您的问题对于网站来说过于宽泛,因为接下来会是什么,C#?爪哇? php?请使用tour,阅读How to Ask,并遵守其中列出的限制和规则。
-
好吧,我不会改变这个问题。我是 Stackoverflow 的新手 :)
标签: matlab