For example, I've got cell array:
c = {[10 12 13]' [4 5 6]' [7 8 9]';...
[10 20 30]' [40 5 60]' [70 80 90]';...
[100 200 300]' [400 500 600]' [3 800 9]' }
I need to find min in every row of c{i,j}, where i=j. So, I need to take c{1,1}, c{2,2}, c{3,3} and to find min of every row. I dont think my description is clear, so see the attached file. So the answer must be
ans = [3 5 9]'
Thanks a lot !

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 13 Mar 2015
Modifié(e) : Andrei Bobrov le 13 Mar 2015

0 votes

k = c(1:size(c,1)+1:end));% EDIT (diag(c));
or
k = c(eye(size(c))>0);
out = min([k{:}],[],2);

6 commentaires

Nik Zakh
Nik Zakh le 13 Mar 2015
Undefined function 'diag' for input arguments of type 'cell'
Andrei Bobrov
Andrei Bobrov le 13 Mar 2015
Modifié(e) : Andrei Bobrov le 13 Mar 2015
Sorry, I now use Octave... fixed.
Nik Zakh
Nik Zakh le 13 Mar 2015
It works ! Thanks ! Now I need to understand HOW does it work :)
Nik Zakh
Nik Zakh le 22 Mar 2015
Thanks for the previous answer ! Can you now help me to do the same thing, but for the case when i~=j ? Thanks !
variant
k = c(~eye(size(c)));
out = min([k{:}],[],2);
Nik Zakh
Nik Zakh le 23 Mar 2015
That's easy ! Thank you one more time !

Connectez-vous pour commenter.

Plus de réponses (1)

Catégories

En savoir plus sur Polynomials dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by