[Matlab] Zapis funkcji

Awatar użytkownika
pyzol
Użytkownik
Użytkownik
Posty: 4346
Rejestracja: 26 kwie 2010, o 11:39
Płeć: Mężczyzna
Lokalizacja: Nowa Ruda
Podziękował: 5 razy
Pomógł: 929 razy

[Matlab] Zapis funkcji

Post autor: pyzol »

Bo else znalazł się w pętli for przypadkiem. Musisz zamknąć for. W 7 wierszu wpisz najpierw end.
maxishine
Użytkownik
Użytkownik
Posty: 33
Rejestracja: 8 sty 2012, o 15:29
Płeć: Kobieta
Lokalizacja: Cieszyn
Podziękował: 6 razy

[Matlab] Zapis funkcji

Post autor: maxishine »

ok, już poprawiłam ale ciągle pojawia się jakiś błąd.
Może źle wywołuję tą funkcję ?
suma( 2 3; 4 5 ) próbowałam też z nawiasem kwadratowym
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[Matlab] Zapis funkcji

Post autor: witekkq »

Kod: Zaznacz cały

suma([2 3;4 5])
maxishine
Użytkownik
Użytkownik
Posty: 33
Rejestracja: 8 sty 2012, o 15:29
Płeć: Kobieta
Lokalizacja: Cieszyn
Podziękował: 6 razy

[Matlab] Zapis funkcji

Post autor: maxishine »

Index przekracza wymiary macierzy
witekkq
Użytkownik
Użytkownik
Posty: 145
Rejestracja: 16 lis 2007, o 09:06
Płeć: Mężczyzna
Lokalizacja: Gniezno
Podziękował: 2 razy
Pomógł: 27 razy

[Matlab] Zapis funkcji

Post autor: witekkq »

suma.m

Kod: Zaznacz cały

function y=suma(A)
[wiersz, kol]=size(A);
if wiersz==kol
    wektor=zeros(1,kol);
    for i=1:wiersz
         wektor=wektor+A(i,:);
    end
    y=wektor;
else
    disp('To nie jest macierz kwadratowa')
    y=-1;
end
wywołanie

Kod: Zaznacz cały

suma([2 2; 2 5])
wynik

Kod: Zaznacz cały

ans = 4     7
@poniżej
możesz trochę poczytać o podstawach skryptów matlaba to nie będziesz musiała o wszystko pytać i zrozumiesz lepiej składnie.
Ostatnio zmieniony 27 lut 2013, o 16:58 przez witekkq, łącznie zmieniany 1 raz.
maxishine
Użytkownik
Użytkownik
Posty: 33
Rejestracja: 8 sty 2012, o 15:29
Płeć: Kobieta
Lokalizacja: Cieszyn
Podziękował: 6 razy

[Matlab] Zapis funkcji

Post autor: maxishine »

działa:) dziekuję za pomoc

-- 6 mar 2013, o 00:41 --

Mam problem z jeszcze jednym zadaniem, będę wdzięczna za pomoc.

Chcemy uzyskać pierwiastki funkcji f (x) = e(x−2) − ln(x + 2) − 2x. Napisz skrypt, którego wykres funkcji będzie w przedziale [-1,6], oś y=0. Zaznacz pierwiastki w okręgach. Użyj bisection Matlab function aby znaleźć pierwiastki.


1.FUNKCJA - fun:

function [y]=fun(x)
y=exp(x-2)-log(x+2)-2*x
end


2.

function [x,iter]=bisection(a,b,tol)
if fun(a)*fun(b)>0
disp('search another interval [a, b]')
x=[];
elseif fun(a)*fun(b)<0
iter=0;
fa=fun(a);
while abs(b-a)>tol
iter=iter+1;
x=(a+b)/2;
fx=fun(x);
if fx==0
a=x;
b=x;
elseif fa*fx<0
b=x;
else
a=x;
end
disp([a b x])
end
end



Póki co mam coś takiego ale nie wiem czy o to chodzi
ODPOWIEDZ