在matlab中将表格对象写入csv
我在Matlab中有一个表对象,其单元格如快照所示: 陆地和海员舱内的单元格如下所示: 对象的类别如下所示:在matlab中将表格对象写入csv,matlab,matlab-table,Matlab,Matlab Table,我在Matlab中有一个表对象,其单元格如快照所示: 陆地和海员舱内的单元格如下所示: 对象的类别如下所示: >> class(FileData.gTruth.LabelData.Land) ans = 'cell' >> class(FileData.gTruth.LabelData.Land{1,1}) ans = 'double' >> class(FileData.gTruth.LabelData) ans = 'tabl
>> class(FileData.gTruth.LabelData.Land)
ans =
'cell'
>> class(FileData.gTruth.LabelData.Land{1,1})
ans =
'double'
>> class(FileData.gTruth.LabelData)
ans =
'table'
我尝试了一些语法,如writetable
和csvwrite
,但没有得到正确的输出格式。如图所示,陆地和海员号的读数混乱(读数为列式而非行式)
我希望输出的顺序如下:
[1063 126 115 86] [1 169 158 147;1 104 165 66;728 105 276 43;950 113 971 40;1 107 810 23;227 133 48 15;618 131 107 20] [562 220 33 51;1736 167 26 28;532 130 18 15;393 129 23 14]
迄今为止的代码:
writetable(FileData.gTruth.LabelData、'labelled1.txt'、'Delimiter'、';')代码>您可以简单地使用二维矩阵的转置来构建新表:
Ship = [1063 126 115 86]
Land = {[1 169 158 147;1 104 165 66; 728 105 276 43; 950 113 971 40; 1 107 810 23; 227 133 48 15; 618 131 107 20]}
Seamark = {[562 220 33 51; 1736 167 26 28; 532 130 18 15; 393 129 23 14]}
t = table(Ship,Land,Seamark);
t2 = table(t.Ship,reshape(t.Land{:}.',1,[]),reshape(t.Seamark{:}.',1,[]))
writetable(t2,'mycsv.csv','WriteVariableNames',false)
mycsv.csv
文件的第一行也是唯一一行是:
1063 126 115 86 1 169 158 147 1 104 165 66 728 105 276 43 950 113 971 40 1 107 810 23 227 133 48 15 618 131 107 20 562 220 33 51 1736 167 26 28 532 130 18 15 393 129 23 14
我使用了WriteVariableNames,false
来表示变量名不包括在文件的第一行中。请添加您尝试的writetable的示例代码(FileData.gTruth.LabelData、'labelled1.txt','Delimiter',';')代码>在某些行中,我在ship和seamark中没有元素,所以它们是空单元格。在这种情况下,我会得到一个错误:使用tablar/verifyCountVars时出错(第339行),所有变量的行数必须相同。表(第276行)中的错误numRows=表格格式。verifyCountVars(vars);标签错误(第9行)t=表格(船舶、陆地、海员)代码>如何处理?