matrix manipulation

1 Ansicht (letzte 30 Tage)
eri
eri am 1 Feb. 2012
Bearbeitet: Jan am 27 Sep. 2013
how to take matrix element (i.e row) one by one and save each new matrices in a new variable example:
original matrix: a=[2 6 7 8;4 5 3 7;9 7 6 9;5 3 1 9]
become: a1=[4 5 3 7;9 7 6 9;5 3 1 9] a2=[2 6 7 8;9 7 6 9;5 3 1 9] a3=[2 6 7 8;4 5 3 7;5 3 1 9] a4=[2 6 7 8;4 5 3 7;9 7 6 9]

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 2 Feb. 2012
a=[2 6 7 8;4 5 3 7;9 7 6 9;5 3 1 9]
id = ~eye(size(a));
h = arrayfun(@(i1)a(id(:,i1),:),1:size(id,2),'un',0);
[out,idxout] = min(cellfun(@(x)det(x*x.'),h))
OR
a=[2 6 7 8;4 5 3 7;9 7 6 9;5 3 1 9]
id = ~eye(size(a));
s = size(a,2);
h = zeros(s*[1 1 1] - [1 0 0]);
kt = zeros(s,1);
for j1 = 1:s
k = a(id(:,j1),:);
kt(j1) = det(k*k.');
h(:,:,j1) = k;
end
[out,outidx] = min(kt)
  5 Kommentare
eri
eri am 2 Feb. 2012
@andrei bobrov
your second code seem to work fine, could you explain how it works?
@andrei bobrov and Walter Roberson
i am using matlab 7
eri
eri am 3 Feb. 2012
@andrei bobrov
can you explain your code, since i need to actually work with larger matrix and more complicated function
i don't understand from line 4 onwards

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Sean de Wolski
Sean de Wolski am 1 Feb. 2012
Don't do it. That is all.
If you explain your end goal to us we can help you find a better way.
  4 Kommentare
eri
eri am 1 Feb. 2012
@Jan Simon
and how is that?
Walter Roberson
Walter Roberson am 2 Feb. 2012
Use cell arrays, as described in that FAQ entry.

Melden Sie sich an, um zu kommentieren.


eri
eri am 2 Feb. 2012
can someone help me?
  1 Kommentar
Sean de Wolski
Sean de Wolski am 2 Feb. 2012
What does:
which -all arrayfun
return? And what is the output from:
ver
at the command line?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by