我需要将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.