将空格分隔数字列表导入/转换为Matlab中的数组列表

时间:2016-01-06 18:49:00

标签: string excel matlab vector

我是Matlab的新手,我希望将带有空格分隔数字的列(源是Excel文件)转换为数组列表。

enter image description here

在第一步中,我想创建一个这样的数组列表:

enter image description here

然后我想像这样移调列表:

enter image description here

这次转换的正确命令是什么?

我知道这是一个简单的问题,但我找不到类似的问题。

1 个答案:

答案 0 :(得分:2)

首先使用xlsread读取原始文本。文本将作为单元格数组读入,其中每行文本都放在单元格中。完成此操作后,需要按空格分割字符串,以便每行创建一个额外的单元格单元格数组,然后将这些单元格输入到创建数字数组的函数中。您可以将cellfunstrsplitstr2double结合使用。假设您的Excel文件名为list.xls,请执行以下操作:

[~,~,RAW] = xlsread('list.xls');
list = cellfun(@str2double, cellfun(@strsplit, RAW, 'uni', 0), 'uni', 0).';

list包含所需的输出。我也改变了结果,因为这是你想要的。我创建了一个Excel文件,其方式与您在帖子中提到的方式相同。这是我运行代码时得到的。首先,我将展示list的样子,然后我们将检查实际内容是什么:

>> list

list = 

    [1x4 double]    [1x5 double]    [1x6 double]

>> celldisp(list)

list{1} =

        5405        5414        5420        9999



list{2} =

        5405        5414        5430        5341        9999



list{3} =

        5405        5419        5419        5419        5412        9999

这也是MATLAB变量编辑器的样子:

enter image description here