如何在matlab中使用textscan

how to use textscan in matlab

我正在尝试将以下文本文件插入到 matlab 中的矩阵中

time.txt

我尝试使用 'textscan'

fileID = fopen('Uz10.txt');

Uz10=textscan(fileID,'%d');

fclose(fileID);

但总有,

Undefined operator '*' for input arguments of type 'cell'.

谁能给我正确的格式?

您可以这样修改代码:

1) 通过将 %s 指定为 format:在这种情况下,textscan returns 一个 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 returns 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
   ...