我需要将 Excel 工作表上方形区域(10 x 10 单元格)的数据导入 Matlab。
该区域中的所有数据都是数字的,但该区域的一些外部行和列是空的。
在 Matlab 中,我仍然希望在 Excel 中有空单元格的地方(也在外部行和列中)有一个 10 x 10 的双精度矩阵和 NaN。
如果我使用 xlsread,那么空的外部行和列会被自动截断。
不用说,所有的事情都应该在不知道有多少空的外部行和列的情况下自动完成。
我怎样才能做到这一点?
假设您的 10 x 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.