【发布时间】:2017-09-24 13:14:56
【问题描述】:
我正在尝试将以下文本文件插入 matlab 中的矩阵
我尝试使用“文本扫描”
fileID = fopen('Uz10.txt');
Uz10=textscan(fileID,'%d');
fclose(fileID);
但总是得到,
Undefined operator '*' for input arguments of type 'cell'.
谁能给我正确的格式?
【问题讨论】:
我正在尝试将以下文本文件插入 matlab 中的矩阵
我尝试使用“文本扫描”
fileID = fopen('Uz10.txt');
Uz10=textscan(fileID,'%d');
fclose(fileID);
但总是得到,
Undefined operator '*' for input arguments of type 'cell'.
谁能给我正确的格式?
【问题讨论】:
你可以这样修改你的代码:
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 返回int32 类型的(1x2) cellarray,其中包含每行的两位数。然后你可以连接它们以获得(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
...
【讨论】: