Scilab – skrypty, lista poleceń
Strona 1
Skrypt (program interpretowany) możemy napisać w
dowolnym edytorze. Warto posługiwać się edytorem
wbudowanym w program Scilab.
Wykonać skrypt możemy na dwa sposoby:
•
wpisując polecenie
exec('nazwaSkryptu')
•
wybierając z menu
Scilab – skrypty, lista poleceń
Strona 2
Sposób drugi jest wygodniejszy, ale na konsoli pojawia
się dodatkowy tekst.
W sposobie pierwszym musimy znać nazwę pliku ze
skryptem (i nazwę katalogu, w którym skrypt się
znajduje). Przydatne polecenia:
Scilab – skrypty, lista poleceń
Strona 3
•
pwd()
zwraca bieżący katalog roboczy, przy
uruchamianiu skryptów z tego katalogu wystarczy
podać „krótką” nazwę skryptu,
•
cd('katalog')
zmienia bieżący katalog roboczy.
Podstawowe instrukcje:
•
definiowanie własnej funkcji
function [w]=g(a,b)
pom=a.*a+b.*b
w=sin(pom).*exp(pom)
endfunction
//definicja funkcji dwóch zmiennych
(
g a ,b = sina
2
b
2
e
a
2
b
2
),
•
pętla
for
służy do powtarzania pewnego ciągu
instrukcji, ilość powtórzeń (iteracji) określona jest przez
zmienną sterującą
suma=0;
for i=1:2:1000
suma=suma+i;
end
Scilab – skrypty, lista poleceń
Strona 4
suma //250000
//suma liczb nieparzystych z przedziału
[
1,1000]
suma=0;
for i=1:1000
suma=suma+i;
end
suma //500500
//suma wszystkich liczb całkowitych z przedziału
[
1,1000]
x=linspace(-2,2,101)'
y=linspace(-3,3,201)
z=[]
for i=1:length(y)
z=[z y(i).*x]
end
plot3d(x,y,z)
//wykres funkcji f x , y = x y
A=[1 2 3;4 5 6;7 8 9]
⇒
[
1 2 3
4 5 6
7 8 9
]
max(A)
//9 największa liczba w macierzy
max(A(:,2))
//8 największa liczba w drugiej
kolumnie
max(A(2,:))
//6 największa liczba w drugim wierszu
suma=0;
for i=A
Scilab – skrypty, lista poleceń
Strona 5
suma=suma+max(i);
end
suma //24
//
suma największych liczb w kolumnach macierzy A,
•
pętla
while
służy do powtarzania pewnego ciągu
instrukcji dopóki spełniony jest pewien warunek, przy
zapisywaniu warunku przydatne są operatory:
==
równe
<
mniejsze
>
większe
<=
mniejsze lub równe
>=
większe lub równe
~= lub <>
różne
~
negacja
(zaprzeczenie)
|
alternatywa (lub)
&
koniunkcja (i)
x=1;
while (x<=27)
x=2*x;
end
x
//32 najmniejsza liczba postaci 2
n
większa niż
27
,
n=input("Podaj liczbę naturalną: ");
m=n;
Scilab – skrypty, lista poleceń
Strona 6
A=[];
while (n>0)
A=[A modulo(n,2)];
n=floor(n/2);
end
printf("%d = ",m)
for i=length(A):-1:1
printf("%d",A(i))
end
//55 = 110111 (liczba 55 w układzie dwójkowym)
•
instrukcja warunkowa if-elseif-else wykonuje fragment
kodu w zależności od spełnienia (bądź nie spełnienia)
pewnego warunku:
disp("Rownania kwadratowe
ax^2+bc+c=0")
a=input("a = ");
b=input("b = ");
c=input("c = ");
delta=b^2-4*a*c;
if(a==0)
if(b==0)
printf("To nie jest równanie")
else
printf("Jeden pierwiastek:
%6.6f",-c/b)
Scilab – skrypty, lista poleceń
Strona 7
end
elseif(delta<0)
printf("Brak pierwiastków")
elseif(delta>0)
printf("Dwa pierwiastki: %6.6f
%6.6f",(-b-sqrt(delta))/2*a,(-
b+sqrt(delta))/2*a)
else
printf("Jeden pierwiastek: %6.6f",-
b/(2*a))
end
•
instrukcja
select-case
wykonuje fragment kodu
w zależności od wartości pewnej zmiennej:
clear()
disp("Zgaduj zgadula");
poprawne="owca";
answer=input("Odgadnij zwierzę
(używaj małych liter): ");
select answer
case "owca" napis="Gratulacje!";
case "koza" napis="Jesteś blisko";
else napis="Niestety";
end
disp(napis)
Scilab – skrypty, lista poleceń
Strona 8
Lista poleceń
Szczegółowy opis można znaleźć w
Menu główne => ? => Scilab Help.
•
%e
liczba e
•
%pi
liczba
•
length(...)
długość napisu lub ilość elementów
w tablicy
•
min(...)
najmniejsza wartość
•
mean(...)
średnia wartość
•
max(...)
największa wartość
•
sum(...)
suma
•
poly(...)
utworzenie wielomianu o podanych
współczynnikach lub o podanych pierwiastkach
•
xtitle(...)
wyświetlenie napisów oknie
graficznym
•
rand(...),grand(...)
funkcje losujące.