【发布时间】:2016-03-15 16:55:33
【问题描述】:
我有一张这样的桌子:
a 0.31 0.61 0.23 abc
abc 0.53 0.41 0.98 a
我尝试使用以下方法读取表格:
C = textscan(fileID,'%s%f%f%f%s','Delimiter',' ','MultipleDelimsAsOne',1);
它创建 5 列,每列是一个单元格。 我需要它是一个表格(每列应该有单元格行的长度)
我还尝试使用以下方法读取文件:
readtable('file') 但它给了我不同分隔符大小的错误
【问题讨论】:
-
第一列和最后一列必须是一个单元格,因为它们包含大小不等的字符串。如果您坚持要有一张桌子,请使用
table,在使用textscan阅读它之后。 -
但是如何将
C(textscan 之后的变量)中的单元格转换为表格的一部分?基本上我想像这样访问第一行和第一列:C(1,1)而不是C{1, 1}{1, 1} -
你的第二个分配没有意义,我猜应该是
C{1,1}(1,1)。表并不打算用作变量,而只是在将内容写入文件时用作方便的容器。正如我所说:除非您用空格填充,否则您的第一列和最后一列不能成为矩阵,我会始终将字符串保留在单元格中。中间三列当然可以使用cell2mat转换为矩阵。 -
可以调用 cell2table 从元胞数组中获取表格
-
cell2mat(C(:,2:4))有效,但我确实需要最后一列成为表格的一部分,因为最后我需要随机化行(包括最后一列)。
标签: matlab