我在文本文件中有一组数据,格式如下。如何将数据导入MATLAB?谢谢!
{(38.7948,1319,0.8571,119,0),(39.0693,138,0.0897,21,0),(40.7911,63,0.0409,7,0),(103.4512,19,0.0123,5,0),(-26.0424,223,1.0000,28,0)}
{(35.8689,110,0.5093,14,0),(47.7915,41,0.1898,7,0),(59.7489,53,0.2454,7,0),(71.7298,12,0.0556,3,0)}
答案 0 :(得分:1)
如果你在问题中解释你到目前为止所尝试的内容,期望的结果是什么或者你打算如何使用它,那么它总是有用的。这样回答问题的人就不必承担很多事情。
这里我假设您希望将每一行导入为具有一组数字数组的单元格。
要让matlab重新评估表达式,需要更换括号中的括号
{(1,2),(3,4)}
Error: Expression or statement is incorrect
{[1,2],[3,4]}
ans =
[1x2 double] [1x2 double]
要阅读该文件,您可以使用fopen
,然后fgetl
来获取每一行。如果fgetl
的结果不是char,则会到达文件末尾(EOF)。
% Open file
f = fopen('...path\to\file.txt','r');
C = {};
while true
% Read each line
fStr = fgetl(f);
if ischar(fStr)
% Replace parentheses and evaluate expresission
C{end+1} = eval(regexprep(fStr,{'(',')'},{'[',']'}));
else
% End of file
break
end
end
fclose(f)
如果您的文件中的数据格式不正确,可能需要包含一些错误检查。您还可以查看其他方式来阅读数据,例如fread
或fscanf