各要素の長さが異なる文字列を含む 4X10 程度のセル配列に対して xlswrite を使用しようとすると、MATLAB から次のエラーが返されました。
Error using xlswrite (line 188)
An error occurred on data export in CSV format.
Caused by:
Error using dlmwrite (line 118)
The input cell array cannot be converted to a matrix.
要約すると、「xlswrite」によって呼び出される「dlmwrite」関数のどこかで、セル配列の要素を文字配列に連結する「cell2mat」が呼び出されます。ただし、要素を縦方向と横方向に連結し、縦方向に同じ長さでない文字要素を連結することはできません。一貫性のない次元の配列になってしまいます。例えば、
「abcdef」と「abc」がある場合、それらを垂直に連結すると次のようになります。
abcdef
abc
最初の行の長さは 6 で、2 番目の行の長さは 3 です。行列について話している場合、これは論理的に意味がありません。この場合は 2X6 である必要があります。
誰かがこれに対する回避策を知っていますか? MATLAB のこの不具合にはかなり不満を感じています。