我的'data.xlsx'文件包含数字和字母的单元格。
当我运行此命令时:
[num,txt,raw] = xlsread('data.xlsx');
我得到了:
num =
NaN NaN NaN
NaN NaN 6
NaN NaN NaN
4 NaN NaN
txt =
'a' 'd' 'g'
'b' 'e' ''
'c' 'f' 'h'
'' '' ''
有一种方法可以获得一个包含两者的新变量吗?类似的东西:
raw =
'a' 'd' 'g'
'b' 'e' '6'
'c' 'f' 'h'
'4' '' ''
也许是通过使用num2str?
我解决了我的问题,谢谢所有
在yuk的解决方案中,我得到了:P.S。我的版本是Matlab 2010a。
答案 0 :(得分:2)
[~,~,raw] = xlsread('data.xlsx');
%# find numbers
containsNumbers = cellfun(@isnumeric,raw);
%# convert to string
raw(containsNumbers) = cellfun(@num2str,raw(containsNumbers),'UniformOutput',false);
答案 1 :(得分:0)
除了Alon的solution之外,如果输入文件中的这些单元格为空,它将包含'NaN'
个字符串的单元格。
只需在xlsread
之后添加:
containsNaNs = cellfun(@isnan,raw);
raw(containsNaNs) = {''};