Trying to find cells of a matrix from vector values

1 vue (au cours des 30 derniers jours)
napo
napo le 6 Juin 2014
Commenté : napo le 6 Juin 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 commentaires
Azzi Abdelmalek
Azzi Abdelmalek le 6 Juin 2014
What are your data?, what is the expected result? and how to get this result?
napo
napo le 6 Juin 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)

Connectez-vous pour commenter.

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 6 Juin 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)

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 6 Juin 2014
Modifié(e) : Andrei Bobrov le 6 Juin 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 commentaires
Andrei Bobrov
Andrei Bobrov le 6 Juin 2014
corrected
napo
napo le 6 Juin 2014
this works but returns the values inside the cells and i want the number of the column that the cell is.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by