0

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

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

读取文件。现在我正在寻找一种将所有单元格转换rawstrings. 我实际上解决了这个问题

raw=cellfun(@convertmat2char,raw);

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

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

4

2 回答 2

1

不要检查它是否是数字,而是直接使用num2str 它们。 像这样
使用:cellfunnum2str

raw = cellfun(@num2str, raw, 'UniformOutput', 0);
于 2017-03-01T14:31:17.207 回答
0

需要多久

nonNaNnumeric = numeric(~isnan(numeric));
num2str(nonNaNnumeric)

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

于 2017-03-01T15:12:22.517 回答