将xls文件导入到全字符串单元格数组中

时间:2017-03-01 14:20:20

标签: matlab casting string-formatting cell-formatting xlsread

我正在尝试导入一个xls文件,其中包含数字和字符串数据。现在我希望Output为cell - 仅由字符串组成的数组。 我用了

[numeric,text,raw]=xlsread('myFile.xls');

读取文件。现在我正在寻找一种方法将raw的所有单元格转换为strings。我实际上用

解决了这个问题
raw=cellfun(@convertmat2char,raw);

function charData = convertmat2char(data)
if isnumeric(data)
    charData={num2str(data)};
else
    charData={data};
end
end

但这太慢了。我想这可以通过一个非常简单的矩阵运算来完成,但我似乎无法弄清楚如何。

2 个答案:

答案 0 :(得分:1)

不要检查它是否为数字,而是直接在所有这些上使用 num2str
使用 cellfun num2str ,如下所示:

raw = cellfun(@num2str, raw, 'UniformOutput', 0);

答案 1 :(得分:0)

多长时间
nonNaNnumeric = numeric(~isnan(numeric));
num2str(nonNaNnumeric)

取?这次只将数字转换为字符串。如果它不够快,你应该尝试更快的printf。如果即使这样太慢,你需要首先将xls中的数据作为字符串导入以避免这种转换,我不知道该怎么做或者甚至可能。