我试图在m x 4矩阵中隔离数据的特定部分。这里有大量的数据点,我需要能够在矩阵中分离出数据的特定部分。
为了解决这个问题,我有8个大小相同的数据集(m x 8),每个数据集中都有不同的数据值。此外,在每个数据矩阵中,有一个中断,其中有2列,而不是4列。
我需要想出一种方法一次读取所有文件,在所有8个矩阵中分离数据的特定列,在所有8个矩阵中分离相同部分的数据,然后将数据平均为一个矩阵。
现在我得到的是:
clear
for n = 1:8
raw = fileread(['filename',num2str(n)]); %num2str(n) is the test number which goes from 1-8
end有没有更短的方法来做这件事?
数据如下:
1000 50
1 0.01 33.37 252.052
2 0.03 24.43 302.95
3 0.05 113.4 303.35
4 0.07 36.93 301.36
5 0.09 30.18 272.923
6 0.11 21.73 311.392
7 0.13 98.14 309.547
8 0.15 57.99 307.23
9 0.17 28.3 294.802
10 0.19 25.87 315.202
11 0.21 88.8 271.713
12 0.23 65.62 286.422
13 0.25 27.9 338.652
14 0.27 27.5 323.503
15 0.29 65.8 302.545
16 0.31 85.68 288.909
17 0.33 25.68 368.932
18 0.35 28.1 372.731
19 0.37 52.03 386.33
20 0.39 104.95 402.87
21 0.41 23.45 349.083
22 0.43 30.31 353.418
23 0.45 42.89 410.256
24 0.47 109.12 421.674
25 0.49 23.26 379.214
26 0.51 35.76 343.582
27 0.53 26.3 401.289
28 0.55 118.04 434.815
29 0.57 29.12 376.607
30 0.59 33.58 424.887
31 0.61 23.23 393.065
32 0.63 107.01 394.063
33 0.65 47.05 449.556
34 0.67 25.2 347.347
35 0.69 29.56 386.667
36 0.71 93.81 310.077
37 0.73 59.56 338.902
38 0.75 26.5 257.647
39 0.77 25.89 296.728
40 0.79 75.37 284.466
41 0.81 78.66 274.047
42 0.83 28.25 263.322
43 0.85 24.87 249.153
44 0.87 58.41 294.226
45 0.89 97.23 288.702
46 0.91 22.02 313.901
47 0.93 30.99 278.787
48 0.95 37.59 331.611
49 0.97 116.68 291.19
50 0.99 21.89 277.714
2000 50
1 0.01 32.46 254.776
2 0.03 23.79 323.679
3 0.05 112.33 301.529
4 0.07 37.24 318.256
5 0.09 30.47 254.25
6 0.11 23.79 307.803
7 0.13 100.33 317.979
8 0.15 54.73 308.255
9 0.17 27.95 268.967
10 0.19 26.2 314.853
11 0.21 87.03 271.006
12 0.23 66.81 289.273
13 0.25 27.41 317.178
14 0.27 27.33 321.76
15 0.29 69.99 325.501
16 0.31 82.7 287.062
17 0.33 26.21 393.801
18 0.35 28.07 373.959
19 0.37 57.72 384.509
20 0.39 99.11 395.208
21 0.41 22.67 352.55
22 0.43 30.84 363.797
23 0.45 43.4 413.233
24 0.47 108.33 420.134
25 0.49 23.17 402.015
26 0.51 36.52 340.785
27 0.53 26.55 374.52
28 0.55 120.69 422.856
29 0.57 26.18 392.931
30 0.59 33.7 428.731
31 0.61 22.82 412.042
32 0.63 105.36 407.581
33 0.65 48.39 426.492
34 0.67 26.35 356.509
35 0.69 27.29 389.012
36 0.71 90.77 303.742
37 0.73 62.94 324.713
38 0.75 27.02 273.747
39 0.77 27.18 264.457
40 0.79 71.91 293.905
41 0.81 78.46 274.991
42 0.83 28.82 272.619
43 0.85 27.21 241.423
44 0.87 54.81 285.661
45 0.89 101.26 292.041
46 0.91 22.54 317.539
47 0.93 30.44 292.688
48 0.95 39.77 326.761
49 0.97 115.9 285.359
50 0.99 21.04 296.302第一列在完成1-50循环后重复,第二列每0.01-0.99重复一次,我试图隔离每个周期中的数据,使其等于我可以操作或绘制的单个变量。
发布于 2014-07-08 23:20:59
因此,您可以使用提供的答案这里将数据转换为单元格数组。ie:
[1000] [50] [] []
[1] [0.01] [33.37] [252.052]
...
[50] [0.99] [21.89] [277.714]
[2000] [50] [] []
[1] [0.01] [32.46] [254.776]然后,可以搜索有两个空单元格的行。
emptyCells = cellfun(@isempty,a);您应该能够以这种方式分离您的数据。假设你发现第51行到101行之间是你的数字所在。您可以使用以下方法将它们转换为矩阵:
matrix = cell2mat(cell(51:101, :))https://stackoverflow.com/questions/24642516
复制相似问题