2
我知道這看起來很平凡,但經過幾個小時瀏覽網絡以獲得答案,我開始放棄了!將單元分成單列矩陣
我正在閱讀一個ASCII(字符串+雙)文件使用Matlab來檢索我需要的數據。我使用下面的代碼:
fid = fopen(filename,'rt');
output_data = textscan(fid,'%s','Delimiter','\t');
它給了我一個單元格484 x 1.到目前爲止,這是預期的。
3.0 12.605 37.815 6.173 700.000 0.567 0.4212 0.8422 0.3014 74.897 49.907 30.974 -0.004 11.483 17.374 15.066 33.257 0.1870 50.605 0.8540 92.2821
3.5 10.804 37.815 6.173 700.000 -0.729 0.4593 0.8480 0.3051 129.674 68.391 77.109 -0.002 15.490 21.910 15.165 79.908 0.2830 68.236 0.8461 92.5326
4.0 9.454 37.815 6.173 700.000 -1.674 0.4731 0.8160 0.2855 199.409 85.954 138.884 -0.005 19.052 26.176 15.297 142.077 0.3371 86.101 0.8174 92.9654
4.5 9.198 41.389 6.756 766.150 -1.351 0.4734 0.7812 0.2661 284.050 104.149 215.800 -0.004 22.081 30.708 15.461 220.582 0.3676 105.286 0.7897 94.0197
5.0 8.993 44.963 7.340 832.300 -1.475 0.4729 0.7728 0.2617 389.300 127.195 312.298 -0.011 25.463 35.872 15.667 318.630 0.3871 128.221 0.7790 95.3147
5.5 8.992 49.457 8.073 915.500 -1.475 0.4729 0.7728 0.2617 518.157 153.904 431.486 -0.015 28.794 41.955 15.922 439.302 0.4010 154.751 0.7770 96.8529
現在它變得棘手:我想創建一個矩陣每列「列」。您可以注意到,兩列之間的間距取決於字符數量。
含義,我需要一個列:
3.0
3.5
4.0
etc...
下一個需要是:
12.605
10.804
9.454
etc...
依此類推,直至最後一個
92.2821
92.5326
92.9654
etc...
我發現了這片的代碼可以幫助,但我無法修改它以應付超過2列。任何幫助在這裏將不勝感激。
str_cellarr ={
'12:34'
'13:45'
'12:45'};
split1 = regexp(str_cellarr, ':', 'split');
split1_2cols = mat2cell(vertcat(split1{:}),size(str_cellarr,1),[1 1]);
[var1,var2] = deal(split1_2cols{:});
var1 = str2double(var1)
var2 = str2double(var2)