2 svar
70 visningar
unicarl behöver inte mer hjälp
unicarl 21
Postad: 27 okt 2022 08:30

Hjälp med en for-loop

Har försökt mig på att skriva en funktion som tar en vektor x och returnerar det största värdet i x. Jag sk använda mig av for- och if-loopar. Har skrivit följande funktion:

function [max] = maximum(a)

max = 0;

for i: "vad ska st här"
    if (a[i] > max)
        max = a[i];
    end
end

disp(max)

 

Och kallat på funktionen på följande sätt:

>> a = randi(3,3)

a =

     2     1     3
     2     1     2
     3     1     2

>> max = maximum(a)

Jag förstår inte riktigt vad gränsen för for.loopen ska vara för att det ska fungera som det ska. Sedan är jag inte heller 100% sker på hur jags ska kalla på funktionen.

Matsmats 571 – Livehjälpare
Postad: 27 okt 2022 16:20 Redigerad: 27 okt 2022 16:27

Det stod att du skulle kalla på funktionen med en vektor, inte en matris. 

Då kan du loopa över vektorns längd , dvs från 1 t.o.m. längden av vektorn.

Din funktion kommer just nu inte att fungera för t.ex negativa tal.

En annan grej är att det finns en inbyggd funktion som heter 'max'. Du 'skriver över' den i din kod. I det här fallet går det bra ändå, men jag gissar att du har en varning i editorn. 

 

unicarl 21
Postad: 28 okt 2022 08:05
Matsmats skrev:

Det stod att du skulle kalla på funktionen med en vektor, inte en matris. 

Då kan du loopa över vektorns längd , dvs från 1 t.o.m. längden av vektorn.

Din funktion kommer just nu inte att fungera för t.ex negativa tal.

En annan grej är att det finns en inbyggd funktion som heter 'max'. Du 'skriver över' den i din kod. I det här fallet går det bra ändå, men jag gissar att du har en varning i editorn. 

 

Tack så mycket!

Svara
Close