2016-01-06 476 views
1

我是Matlab新手,我想將空格分隔的數字(源文件是Excel文件)轉換爲數組列表。在Matlab中將空格分隔的數字導入/轉換爲數組列表

enter image description here

在第一步我要創建這樣的陣列的列表:

enter image description here

然後我想轉名單如下:

enter image description here

這個轉換的正確命令是什麼?

我知道這是一個簡單的問題,但我找不到類似的問題。

+0

定義*列表*載體。你是說單元陣列嗎?你的輸入是什麼?二維字符數組,還是帶有換行符的單個字符串? –

+0

請大家熟悉MATLAB內置的數據結構:數組和單元。你的問題的一部分表明你對這個問題不太清楚。另外,請先了解如何從Excel導入數據;這可能已經引導你或限制你的選擇。 –

回答

2

首先使用xlsread來閱讀原始文本。文本將作爲單元格數組讀入,其中每行文本都放置在單元格中。一旦你這樣做了,就需要用空格分割字符串來爲每行創建一個額外的單元格數組,然後將這些單元格輸入到創建數字數組的函數中。您可以使用cellfun結合strsplitstr2double。假設您的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

相關問題