我有一个包含字符串和数字的单元格数组。我想加载单元格数组的所有元素。对于同样的情况,我使用了以下方法:
load(filename);
此命令仅加载字符串并排除具有数字的列。基本上,因为我的文件不是.mat
扩展名,所以它将其视为ASCII文件并仅加载文本。
我试过了importdata(filename)
。但这给了我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]