将字符串添加到1-D单元阵列而不在MATLAB中确定其长度

时间:2016-05-02 10:34:09

标签: arrays string matlab cell

我在file.txt中有一些字符串,我想将它们全部添加到单元格数组中。

但问题是文件中的一些字符串是未知的,我不想计算。我希望每次我在文件中读取1个字符串(从上到下),我都会将其添加到单元格数组中。

示例:

**file.txt**

ABC
DEFG
HI
JKLMNO

--> cellarray(1) = 'ABC', cellarray(2) = 'DEFG', cellarray(3) = 'HI', cellarray(4) = 'JKLMNO'

我使用的是MATLAB R2014b 。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

您可以使用textscan将整个文件加载到字符串的单元格数组中。结果将是一个1 x 1单元格数组,因为您只有一个格式说明符(%s),但该单元格数组将包含所有行的另一个单元格数组文件。

fid = fopen('file.txt', 'rt');
data = textscan(fid, '%s', 'delimiter', '\r\n');

C = data{1};

%// 'ABC'
%// 'DEFG'
%// 'HI'
%// 'JKLMNO'

答案 1 :(得分:0)

您可以使用MATLAB中的fgets函数(Documentation)从文本文件中获取一行