Matlab xlsread函数

时间:2012-06-14 15:12:46

标签: matlab xlsx

我的'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的解决方案中,我得到了: enter image description here

P.S。我的版本是Matlab 2010a。

2 个答案:

答案 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) = {''};