MATLAB Answers

Store a particular set points in a new cell array.

4 views (last 30 days)
Ricky
Ricky on 11 Jun 2013
Hello Everyone,
I had asked a similar question few weeks back but I think that question was not framed properly so please excuse me for asking the same question again
I have a column vector with values
32.5
25.8
25.91
25.92
16.52
16.7
Now I want to create a cell array such that my first cell contains the first value, my second cell array contains value from 25.8 to 25.92 and finally my third cell array contains the values 16.52 and 16.7 .
How can I solve this problem.
  2 Comments
Ricky
Ricky on 11 Jun 2013
Matt in one cell the data group will always be like a neighbour. So suppose I am measuring distance of a test piece from a reference point. So if the distance is 25 mm I use a tolerance window of 24.5 to 25.5 (that is -0.5 and +0.5)

Sign in to comment.

Answers (3)

Matt J
Matt J on 11 Jun 2013
[u,~,j]=unique(floor(inputVector),'stable');
z=histc(j,1:max(j));
result = mat2cell(v,z,1)

Azzi Abdelmalek
Azzi Abdelmalek on 11 Jun 2013
A=[32.5;25.8;25.91;25.92;16.52;16.7];
out{1}=A(1);
out{2)=A(2:4);
out{3}=A(5:6);
  9 Comments
Ricky
Ricky on 11 Jun 2013
Actually I want to save the when my object is far from the sensor and when it is closer. So I check if the distance is 32.5 mm it is far. When the distances are 25.8,25.91 these small variation can be due to sensor noise or human errors while taking readings. Similarly in the third set I know the object is around 16 mm away from sensor. Then again I see that object is now far as the distance is 33.5 or 33.6 mm from sensor.

Sign in to comment.


Azzi Abdelmalek
Azzi Abdelmalek on 11 Jun 2013
A=[32.5;25.2;25.91;25.92;16.52;16.7;17;17.45];
B=fix(A+0.5);
C=unique(B,'stable')
out=cell(numel(C),1);
for k=1:numel(C)
idx=find(ismember(B,C(k)))
out{k,1}=A(idx)
end

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by