我有來自不同實驗的數據,堆積在列中。其中一列是實驗編號,另一列是我應該分析的數據。帶有嵌套切片的matlab矢量索引
從數據到分析我只需要一部分,對於單個實驗我知道一個索引,我應該從哪裏開始,在哪裏完成。如果我的數據用於分析,我想創建一個邏輯向量。
作爲一個例子:
a = [8 8 8 6 6 6 8 8 8 8 8 5 5 5 5 8 8 ]';
b = [2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3]';
是矢量a
與數據I需要,b
是實驗次數。 我需要完成:
logicalINeed = [0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 ];
dataFroAnalysis = a(logicalINeed==1)'
這給出了一個輸出:
dataFroAnalysis =
6 6 6 5 5 5 5
我知道每個實驗而不是完全疊列索引:
b2_lower = 3; % index where analysis should start
b2_upper = 5; % index where analysis should end
b3_lower = 4;
b3_upper = 7;
我想簡單地創建零,如果在範圍內則更改爲1
c = zeros([length(a),1]);
c(b==2(b2_lower:b2_upper)) = 1;
c(b==3(b3_lower:b3_upper)) = 1;
顯然這不起作用,因爲它應該。我嘗試實現循環,但完成了很多計數器並且完全沒有效率。原始數據超過100.000個條目,進行500次不同的實驗。
有沒有簡單的索引方式來做到這一點?
謝謝。我給矢量一個例子的目的,只是爲了簡單,它有這三個值。我的目標是僅基於向量b和索引bn_lower,bn_upper上的值來獲取邏輯向量。在原始問題中,我無法對a的值進行索引。 – tomasz74