Obskur kode, største verdi i matrise ved gjennomsnitt
Posted: 06/12-2011 12:13
Prøvde å skrive en litt obskur kode i matlab, både for å trene og for å skrive litt annerledes ting. Koden skal ta inn en matrise, gjør noen merkelige ting og returnere den største verdien til matrisen, og rad og kolonne.
Måten dette blir gjort på er å ta bort alle verdier som er mindre enn gjennomsnittet, til en bare står igjen med ett tall. Koden fungerer dog ikke. Jeg får en feil her
Og jeg aner ikke helt hva som er feilen. Står at den er utenfor rekkevidde av matrisen. Men for det første så vil vel lengden til k, alltid være mindre enn matrisens verdi (strengt talt en kolonnevektor). Så ja, hjelp? =)
Måten dette blir gjort på er å ta bort alle verdier som er mindre enn gjennomsnittet, til en bare står igjen med ett tall. Koden fungerer dog ikke. Jeg får en feil her
Code: Select all
for i = 1:length(k)
matrise(k(i))=[];
end
Code: Select all
function [ X Y Z ] = MaTrIx( matrise2 )
n = 0;
matrise = matrise2
if length(matrise)<numel(matrise)/length(matrise)
b = numel(matrise)/length(matrise);
a = length(matrise);
else
a = numel(matrise)/length(matrise);
b = length(matrise);
end
for j=1:a
for i=1:b
n = matrise(j,i) + n;
end
end
matrise = matrise(:)';
while numel(matrise)>1
K = n/(length(matrise));
k = find(matrise<K)
for i = 1:length(k)
matrise(k(i))=[];
end
n=0;
for i=1:numel(matrise)
n = matrise(i) + n;
end
end
[Y X] = find(sum(matrise));
Z = sum(matrise);
end