Trying to find cells of a matrix from vector values

1 Ansicht (letzte 30 Tage)
napo
napo am 6 Jun. 2014
Kommentiert: napo am 6 Jun. 2014
I have 3 vectors
V1( 1; 3; 5;),
V2 (1; 3; 6;),
V3 (2; 3; 4; 5;) and i want to find in a matrix
A ( 1 5 2 4 3 1; 1 5 5 4 8 8; 5 2 4 6 3 10) at the respective row the 2 numbers closest to zero and return the number of the column. in my example it will be for the first row
V1 (1; 3;),
for the second V2 1; 3;),
and for the third V3 ( 2; 5;)
thank you
  4 Kommentare
Azzi Abdelmalek
Azzi Abdelmalek am 6 Jun. 2014
What are your data?, what is the expected result? and how to get this result?
napo
napo am 6 Jun. 2014
my data are the vectors (V1( 1; 3; 5;),V2 (1; 3; 6;), V3 (2; 3; 4; 5;) ) and the matrix A ( 1 5 3 4 3 1; 1 5 5 4 8 8; 5 2 4 6 3 10), the expected result is V'1 (1; 3;),
V'2 1; 3;),
V'3 ( 2; 5;) and the way to get this is by going to the first row of A (1 5 2 4 3 1) check the columns from V1 values (1 3 5 ) find the two values that is closest to zero, for column 1 A (1,1)= 1 , for 3 A(1,3) = 2 , for 5 A (1,5)=3 and create a new vector V'1 (1,3)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 6 Jun. 2014
V1=[ 1; 3; 5]'
V2=[1; 3; 6]'
V3 =[2; 3; 4; 5]'
A =[ 1 5 3 4 3 1; 1 5 5 4 8 8; 5 2 4 6 3 10]
v={V1,V2,V3}
for k=1:size(A,1)
[ii,jj]=sort(A(k,v{k}));
out(k,1:2)=v{k}(jj(1:2));
end
disp(out)

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 6 Jun. 2014
Bearbeitet: Andrei Bobrov am 6 Jun. 2014
V={[1; 3; 5;];[1; 3; 6;];[2; 3; 4; 5;]};
A =[1 5 3 4 3 1; 1 5 5 4 8 8; 5 2 4 6 3 10];
n = numel(V);
out =zeros(n,2);
for jj = 1:n
B = A(jj,V{jj});
[~,ii] = sort(abs(B));
out(jj,:) = B(ii(1:2));
end
  3 Kommentare
napo
napo am 6 Jun. 2014
this works but returns the values inside the cells and i want the number of the column that the cell is.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Cell Arrays 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