我需要将Excel表格中的方形区域(10 x 10个单元格)中的数据导入Matlab。
区域中的所有数据都是数字,但该区域的某些外部行和列是空的。
在Matlab中,我仍然希望在Excel中有空单元格的地方(也在外部行和列中)有一个10乘10的双精度矩阵和NaN。
如果我使用xlsread,那么空的外部行和列会自动截断。
不用说,所有这些都应该自动完成,而不知道有多少空外行和列。
我该怎么做?
答案 0 :(得分:0)
假设您的10 x 10电子表格的第一行和第一列以及最后一行和一列是空的(如this)。使用:
[num,txt,raw] = xlsread('myfile.xlsx',1,'A1:J10'); % Read input.
将返回:
num 8x8 double
txt 0x0 cell
raw 10x10 cell
在num
中,非标量前导行和列会自动截断,而在txt
中,任何数值都会被省略。但是,raw
包含所有信息,因此可用于提取数值:
raw(cellfun(@ischar,raw)) = {NaN}; % Set non-scalar values to missing.
A = cell2mat(raw); % Convert to matrix.