Matlab xlsread:强制空单元格读取为NaN



我需要将Excel表上的正方形区域(10乘10个单元格)中的数据导入Matlab。

区域中的所有数据都是数字数据,但区域的某些外部行和列是空的。

在Matlab中,我仍然希望在Excel中有空单元格的地方(也在外部行和列中)有一个10乘10的双NaN矩阵。

如果我使用xlsread,那么空的外部行和列将自动截断。

不用说,所有这些都应该在不知道有多少空的外部行和列的情况下自动完成。

我该怎么做?

假设您的10乘10电子表格的第一行和第二列以及最后一行和第三列为空(如下所示)。使用:

[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.

最新更新