如何从Excel列中获取字符串数组?

时间:2019-01-11 07:47:03

标签: matlab

我正在尝试导入excel文件并为excel文件中的每一列创建数组。在A列中有字符串,在B和C列中有数字。我已经能够将B和C列作为数组导入,但是剩下一个空数组,我想要一个字符串数组。

我尝试使用[~, text]=xlsread('myfile.xlsx', 'A:A');,但是数组仍然为空。

我想创建此字符串数组,以便能够以这种方式fprintf(fileID, 'Some words here %s other words here', text(i));将字符串打印到文本文件,其中%s将由位于以下位置的数组文本中的字符串替换索引i

1 个答案:

答案 0 :(得分:0)

我不确定您发布的内容为何无效-您可以显示电子表格的示例吗?

然而,text的{​​{1}}和raw输出(在MATLAB R2018b中,因此在任何较早版本中应相同)是单元数组,而不是字符串数组。要为单个字符串(或技术上为字符向量)建立索引,您需要使用大括号,例如:

[num, text, raw] = xlsread(myfile.xls)

请注意,fprintf(fileID, 'Some words here %s other words here', text{i}); 将在xlsread返回的数据之前和之后去除空白或非数字行和列,并去除其之前和之后的空白或非文本行和列。返回num,因此,如果您的数据在数字数据之前具有标题或空白行,则数字数组的行索引可能与包含文本单元格的单元格数组的行索引不匹配。

如Wolfie所建议的,另一种方法是使用text而不是readtable。由您决定使用表数据类型在程序的其余部分是否更有意义。