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

我是Matlab的新手,我想将空格分隔的数字(源是一个Excel文件)的列转换为数组列表。

在这里输入图像说明

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

在这里输入图像说明

然后我想转置这样的列表:

在这里输入图像说明

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

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

首先使用xlsread读取原始文本。 文本将作为单元格数组读取,其中每行文本都放置在单元格中。 一旦你这样做了,就需要用空格分割string来为每行创build一个额外的单元格数组,然后将这些单元格input到一个创build数字数组的函数中。 你可以使用cellfun结合strsplitstr2double 。 假设你的Excel文件被称为list.xls ,做这样的事情:

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

list包含所需的输出。 我也换了结果,因为这是你的愿望。 我创build了一个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 

这也是MATLABvariables编辑器的样子:

在这里输入图像说明