Cut vector in set range

29 Ansichten (letzte 30 Tage)
Jonasz
Jonasz am 11 Aug. 2013
I have about 10 thousand vectors and I want to cut them all to special range set by my min and max . eg. have only vectors from 600 - 1000 values How to implement it in the best efficient way.

Akzeptierte Antwort

Image Analyst
Image Analyst am 11 Aug. 2013
Try this for each of the vectors:
minValue = 600; % Or whatever you want.
maxValue = 1000; % Or whatever you want.
indexesInRange = data > minValue & data < maxValue;
subVector = data(indexesInRange);
That will, for a vector called data, extract all the values between minValue (which you can define to be 600) and maxValue (which you can define to be 1000) into a new vector called subVector. Do this 10 thousand times for each of the vectors (most likely done in a loop).

Weitere Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 11 Aug. 2013
How your vectors are stored? in a cell array? If yes
Example
v=arrayfun(@(x) randi(2000,1,100),1:10,'un',0) % your cell array
for k=1:numel(v)
out{k}=v{k}(v{k}>600 & v{k}<1000)
end

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by