如何加载具有字符串和数字的单元格数组?

时间:2015-07-30 06:47:30

标签: matlab load cell-array

我有一个包含字符串和数字的单元格数组。我想加载单元格数组的所有元素。对于同样的情况,我使用了以下方法:

load(filename);

此命令仅加载字符串并排除具有数字的列。基本上,因为我的文件不是.mat扩展名,所以它将其视为ASCII文件并仅加载文本。

我试过了importdata(filename)。但这给了我1*1的结构。我需要将元素导入到同一维度的另一个单元格数组中。

有没有办法加载所有值?

1 个答案:

答案 0 :(得分:0)

load用于导入.mat - 包含工作空间变量的文件。由于您的数据不是实际的.mat - 文件,因此您需要使用其他方法。

假设您的文件filename包含制表符分隔的数据:

str1    1
str2    2
str3    3
str4    4

要获取第一列是字符串(使用%s)而第二列是双精度(使用%f)的单元格数组,可以使用textscan。查看结果,也许它已经是您要搜索的内容。

filename = 'data';
F = fopen(filename, 'r');
data = textscan(F, '%s %f', 'Delimiter', '\t');

如果没有,您可以创建一个单元格数组CA,其中第一列是字符串(使用cellstr),第二列是双精度数(使用num2cell)。< / p>

CA = cell(size(data{1},1),2);
CA(:,1) = cellstr(data{1});
CA(:,2) = num2cell(data{2});

结果:

CA = 
    'str1'    [1]
    'str2'    [2]
    'str3'    [3]
    'str4'    [4]