Vinnaren i pepparkakshustävlingen!
2010-12-21, 13:13
  #1
Medlem
Mr. Munchies avatar
Hej jag behöver hjälp med min matlabs uppgift.

Det är såhär att man skall


Mitt program ser ut såhär

function [D] = diagsum ( A )
A
B = A'
c = reshape(B,1,[])
Sajs = size( A );
for k = 1 : length( c )
l = 1;
f = 0;
if (k+Sajs(1,2) < length( c ))
while (l*(Sajs(1,2) < length ( c ))
f = f + c(1,k+(l*(Sajs(1,2)+1)));
l = l + 1;
end
a(1,k) = c(1,k) + f;
else
a(1,k) = c(1,k);
end
end
a
D = (reshape(a,Sajs(1,2),Sajs(1,1)))';

Fast ngt skiter sig på vägen... Är verkligen kass på matlab och behöver hjälp.

Ngn som vet vad som är fel?
Citera
2010-12-21, 14:23
  #2
Medlem
dxdps avatar
Jag förstår och kan skriva ett program, fast bara om m=n dvs om det är en kvadratisk matris. Vad är till exempel diagonalen i:

A = [ 1 2 ; 3 4 ; 5 6 ; 7 8 ; 9 10]?

Räknas till exempel 7-10, 5-9, 4-8 osv alla som diagonaler?
Citera
2010-12-21, 15:40
  #3
Medlem
Mr. Munchies avatar
alltså funktionen skall skapa en matris som har exakt likadana mått som den man skickar in.

Skillnaden är att varje element i matrisen skall vara summan av alla element som står diagonalt till höger om elementet.

så tex

1 1 1
1 1 1
1 1 1 blir

3 2 1
2 2 1
1 1 1
Citera
2010-12-21, 15:46
  #4
Medlem
Mr. Munchies avatar
Citat:
Ursprungligen postat av dxdp
Jag förstår och kan skriva ett program, fast bara om m=n dvs om det är en kvadratisk matris. Vad är till exempel diagonalen i:

A = [ 1 2 ; 3 4 ; 5 6 ; 7 8 ; 9 10]?

Räknas till exempel 7-10, 5-9, 4-8 osv alla som diagonaler?


Kan du se ngt direkt syntax-fel i koden då?
Citera
2010-12-21, 21:51
  #5
Medlem
dxdps avatar
Citat:
Ursprungligen postat av Mr. Munchie
Kan du se ngt direkt syntax-fel i koden då?

Nej, men har inte matlab på datorn just nu heller och så, vad ger koden för output eller felmeddelande?
Citera
2010-12-22, 04:49
  #6
Medlem
PuncturedBladders avatar
Citat:
Ursprungligen postat av Mr. Munchie
alltså funktionen skall skapa en matris som har exakt likadana mått som den man skickar in.

Skillnaden är att varje element i matrisen skall vara summan av alla element som står diagonalt till höger om elementet.

så tex

1 1 1
1 1 1
1 1 1 blir

3 2 1
2 2 1
1 1 1
Ja men måste matrisen vara kvadratisk?

Är det verkligen nödvändigt med reshape? Känns lättare utan.
Citera
2010-12-22, 17:34
  #7
Medlem
Mr. Munchies avatar
Som beskrivningen till uppgiften säger så kan matrisen vara av storlek "M by N" dvs den behöver inte vara kvadratisk
__________________
Senast redigerad av Mr. Munchie 2010-12-22 kl. 17:40.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback