2

我有包含数字和字母单元格的“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'
''     ''      ''

有没有办法获得一个包含两者的新变量?就像是:

原始=

'a'    'd'    'g'
'b'    'e'    '6' 
'c'    'f'    'h'
'4'     ''      ''

也许通过使用num2str?

我解决了我的问题,谢谢大家

在 yuk 的解决方案中,我得到了: 在此处输入图像描述

ps我的版本是Matlab 2010a。

4

2 回答 2

2
[~,~,raw] = xlsread('data.xlsx');
%# find numbers
containsNumbers = cellfun(@isnumeric,raw);
%# convert to string
raw(containsNumbers) = cellfun(@num2str,raw(containsNumbers),'UniformOutput',false);
于 2012-06-14T15:17:00.163 回答
0

除了 Alon 的解决方案'NaN'之外,如果输入文件中的单元格为空,则该解决方案将包含带有字符串的单元格。

只需在之后添加xlsread

containsNaNs = cellfun(@isnan,raw);
raw(containsNaNs) = {''};
于 2012-06-14T15:35:24.173 回答