我是Matlab的新手,我希望将带有空格分隔数字的列(源是Excel文件)转换为数组列表。
在第一步中,我想创建一个这样的数组列表:
然后我想像这样移调列表:
这次转换的正确命令是什么?
我知道这是一个简单的问题,但我找不到类似的问题。
答案 0 :(得分:2)
首先使用xlsread
读取原始文本。文本将作为单元格数组读入,其中每行文本都放在单元格中。完成此操作后,需要按空格分割字符串,以便每行创建一个额外的单元格单元格数组,然后将这些单元格输入到创建数字数组的函数中。您可以将cellfun
与strsplit
和str2double
结合使用。假设您的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变量编辑器的样子: