2017-09-24 87 views
0

我试图下面的文本文件inesrt到矩阵在MATLAB如何使用textscan在MATLAB

time.txt

我试图用 'textscan'

fileID = fopen('Uz10.txt'); 

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

fclose(fileID); 

但alwayes了,

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

有人能给我正确的格式吗?

回答

0

您可以修改你这样的代码:通过指定%s作为format

1):在这种情况下,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 a s format:在这种情况下,textscan返回(1x2) cellarrayint32类型,其中包含每行的两位数字。然后你可以将它们连接起来,以便有一个(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”