我正在尝试将以下文本文件添加到matlab
中的矩阵中我尝试使用'textscan'
fileID = fopen('Uz10.txt');
Uz10=textscan(fileID,'%d');
fclose(fileID);
但是alwayes得到了,
Undefined operator '*' for input arguments of type 'cell'.
任何人都可以给我正确的格式吗?
答案 0 :(得分:0)
您可以这样修改代码:
1)将%s
指定为format
:在这种情况下,textscan
会返回cellarray
字符串
fileID = fopen('Uz10.txt');
% Uz10=textscan(fileID,'%d:%d');
Uz10=textscan(fileID,'%s');
fclose(fileID);
输出:
>> Uz10{1}
ans =
'0:00'
'0:10'
'0:20'
'0:30'
...
2)将%d:%d
指定为format
:在这种情况下,textscan
返回(1x2) cellarray
个int32
类型,其中包含每行的两位数。然后你可以将它们连接起来,以便有一个(nx2)
矩阵
fileID = fopen('Uz10.txt');
Uz10=textscan(fileID,'%d:%d');
% Uz10=textscan(fileID,'%s');
fclose(fileID);
t=[Uz10{1} Uz10{2}]
输出:
>> t=[Uz10{1} Uz10{2}]
t =
0 0
0 10
0 20
0 30
... ...
如果您想将数据作为time data
进行管理,则可以使用datetime功能。
例如(使用上面的第一个format
来读取输入文件):
datetime(Uz10{1},'InputFormat','m:ss')
输出:
>> datetime(Uz10{1},'InputFormat','m:ss')
ans =
24-Sep-2017 00:00:00
24-Sep-2017 00:00:10
24-Sep-2017 00:00:20
24-Sep-2017 00:00:30
...
希望这有帮助,
Qapla'