我正在通过MATLAB生成一个Excel文件,中间有空单元格 . 这是我用来初始化空矩阵的代码:
newfile = cell(5,5);
[newfile{:}] = deal('');
[newfile{:}] = deal(' ');
然后我做一些处理并使用XLSWRITE将数据写入文件 . 电子表格最终会有一些空单元格和一些数据 . 是否有一个命令可以删除空行,而不会影响其中包含数据的行?
另一个问题:
有没有办法附加到这个Excel文件?我每天运行此文件,并希望自动添加数据,而不是每天手动复制和粘贴 .
除上述问题外:
如果我的输出文件看起来像
1.8 3 -4.7 1.87 3.9 -5.8 1.84 2.8 -4.3 2 3.2 -4.7 2 3.7 -6 2 3.6 -5.2 3 4.3 -6.5 13 4.2 13.1 12 3.5 -6.3 1.65 1.9 -4.4
因此,当它不在单元格中时,如何删除空行,因为cellfun不适用于此
1 回答
如果我理解你的问题的第一部分,你想删除
newfile
单元格数组中只包含空单元格的任何行 . 您可以使用函数CELLFUN来查找空单元格,使用函数ALL查找包含所有空单元格的行,然后使用logical indexing删除这些行:EDIT: 如果使用空格(
' '
)而不是空字符串(''
)初始化单元格数组newfile
,则必须在上面的代码中更改计算emptyIndex
的方式 . 应将CELLFUN参数'isempty'
更改为@(x) strcmp(x,' ')
以获得相同的结果 .关于第二个问题,您可以在调用XLSWRITE中指定要添加数据的文件中的工作表和行/列范围 . 如果您每天添加一次文件,最简单的解决方案可能是添加一个以日期作为名称的新工作表 . 以下内容将
M
中的数据写入文件fileName
,添加一个以当前日期和时间命名的新工作表: