我正在尝试导入一个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
但这太慢了。我想这可以通过一个非常简单的矩阵运算来完成,但我似乎无法弄清楚如何。
答案 0 :(得分:1)
不要检查它是否为数字,而是直接在所有这些上使用 num2str
。
使用 cellfun
和 num2str
,如下所示:
raw = cellfun(@num2str, raw, 'UniformOutput', 0);
答案 1 :(得分:0)
多长时间
nonNaNnumeric = numeric(~isnan(numeric));
num2str(nonNaNnumeric)
取?这次只将数字转换为字符串。如果它不够快,你应该尝试更快的printf。如果即使这样太慢,你需要首先将xls中的数据作为字符串导入以避免这种转换,我不知道该怎么做或者甚至可能。