sciąga matlab

1.

Argumentem wywołania funkcji jest wektor numeryczny V oraz wartość naturalna n. Należy wygenerować macierz o n kolumnach odpowiadających wektorowi V.

Przykład: V=[3,2,1] oraz n=4

[3 3 3 3]

M = |2 2 2 2|

[1 1 1 1]

czyli w wyniku mamy dostać V' (V transponowane) w n kolumnach

Rozwiązanie:

function X=generuj()

clear all

'Macierz transponowana o n kolumnach odpowiadających wektorowi V'

V = input ('Wprowadź wektor numeryczny V w nawiasie [] oddzielając przecinkiem kolejne wartości: ');

n = input ('Podaj liczbę kolumn n: ');

for i=1:n

X(:,i)=V';

end

end

2.

Funkcja, która pobiera dowolną macierz i każdy wiersz macierzy mnoży przez ilość liczb parzystych w tym wierszu

function [N]=zaliczenie1(M)
Parzyste=mod(M,2);
Parzyste=Parzyste-1;
Parzyste=abs(Parzyste);
Parzyste=sum(Parzyste')
[x,y]=size(M);
for i=1:x
N(i,:)=M(i,:)*Parzyste(i);
end
end

3.

Funkcja rysująca wykresy funkcji 2D i 3D:

function wykres(a,b,c)

x=a;

if nargin==2

if sum (b==y)

wykres 3D(x,b);

else

wykres 2D(x,b);

end

wykres 2D(x,b);

else if nargin==3

wykres 3D(x,b,c);

end

end

function wykres2D (x,f)

y=eval (f);

plot (x,y,'b');

save ('p','x','y');

function wykres3D (x,y,f)

[x,y]=meshgrid(x,y);

z=eval (f);

mesh (x,y,z);

save ('f','x','y','z')

4.

Do każdego elementu parzystych kolumn trzeba dodać liczbę liczb ujemnych występujących w odpowiadającym elementowi rzędzie. Dla nieparzystych kolumn odejmujemy liczbę liczb ujemnych...

A=[-1 4 -5 7; 4 3 0 -1; 9 5 -2 -6; 0 0 -1 -1];

B=[A A]

[m,n]=size(B)

v=zeros(m,1);

for i=1:m

for j=1:n

if B(i,j)<0

v(i)=v(i)+1;

end

end

end

v

C=B;

k=2;

while k<=n

for i=1:m

C(i,k)=C(i,k)+v(i);

end

k=k+2;

end

D=C-B

Krótsza wersja:

function [t]=parzyste(t)

t=t+sum((t<0)')' *mod([0:1:length(sum(t))-1],2)-sum((t<0)')' *mod([1:1:length(sum(t))],2);

end

5.

Każdy element wiersza macierzy pomnożyć przez liczbę liczb parzystych występujących w danym wierszu.

A=[-1 4 -5 7; 4 3 0 -1; 9 5 -2 -6; 0 0 -1 -1];

%B=[3*A A];

[m,n]=size(A)

v=zeros(m,1);

for i=1:m

for j=1:n

N=mod(A(i,j),2);

if N==0

v(i)=v(i)+1;

end

end

end

for i=1:n

V(:,i)=v;

end

disp('macierz na wejściu:')

A

disp('Ilość elementów parzystych w danym wierszu:')

v

disp('Wynik:')

B=A+V

Krótsza wersja:

(przyjąłem, że 0 nie jest liczbą parzystą)

function [t]=liczbyp1(t)

t=t.*(sum(((~mod(t,2))&(t~=0))')' *ones(1,length(sum(~mod(t,2)))));

end

6.

Argumentem wywołania funkcji jest macierz numeryczna. Dla każdej kolumny macierzy:

a)jeżeli suma wartości elementów danej kolumny jest mniejsza od 10, wówczas wartość elementów danej kolumny zastępujemy wartością -1

b)w przeciwnym wypadku, wartości elementów kolumny zastępujemy 1.

function [t]=dzies(t)

t=(ones(length(sum(t)),1)*(sum(t)>=10))-(ones(length(sum(t)),1)*(sum(t)<10));

end

lub

function [t]=dzies(t)

t=ones(size(a,1),1)*(sum(a)>=10) - ones(size(a,1),1)*(sum(a)<=10)

7.

Argumentem wywołania funkcji jest dowolna macierz numeryczna:

a) jeżeli wartość elementu jest mniejsza od 0, przemnóż ją przez 2

b) jeżeli wartość elementu jest większa od 0, przemnóż ją przez 3,

c) jeżeli wartość elementu wynosi 0, dodaj 3

function[] = do( s )

s = s.*(((s>0).*3) + ((s<0).*2))+((s==0)*3)

end

Obecność kropki przed symbolem mnożenia lub potęgowania jest dla MATLABA wskazówką, że odpowiednie operacje wykonuje się "po współrzędnych". Natomiast brak kropki oznacza, że operacja ma być wykonana w sensie macierzowym (np. mnożenie macierzy, iloczyn skalarny wektora wierszowego przez kolumnowy).

8.

Do kazdego elementu parzystych kolumn trzeba dodac liczbe liczb ujemnych wystepujacych w odpowiadajacym elementowi rzedzie. Dla nieparzystych kolumn odejmujemy liczbe liczb ujemnych...

function [t]=parzyste(t)

t=t+sum((t<0)')' *mod([0:1:length(sum(t))-1],2)-sum((t<0)')' *mod([1:1:length(sum(t))],2);

end

Każdy element wiersza macierzy pomnożyć przez liczbę liczb parzystych występujących w danym wierszu.

function [t]=liczbyp1(t)

t=t.*(sum(((~mod(t,2))&(t~=0))')' *ones(1,length(sum(~mod(t,2)))));

end

9.

Argumentem wywołania funkcji jest macierz numeryczna. Dla każdej kolumny macierzy:

a)jeżeli suma wartości elementów danej kolumny jest mniejsza od 10, wówczas wartość elementów danej kolumny zastępujemy wartością -1

b)w przeciwnym wypadku, wartości elementów kolumny zastępujemy 1.

function [t]=dzies(t)

t=(ones(length(sum(t)),1)*(sum(t)>=10))-(ones(length(sum(t)),1)*(sum(t)<10));

end

10.

% Kazdy element wiersza macierzy M nalezy przemnozyc przez wartosc

% odpowiadajaca liczbie elementow parzystych biezacego wiersza

for i = 1:size(M,1)

M(i, = M(i, .* length(M(mod(M(i,,2) == 0));

End

11.

% Kazdy element, kolumny o idenskie parzystym macierzy A, nalezy

% zwiekszyc o wartosc odpowiadajaca liczbie elementow ujemnych biezacego

% wiersza. Natomiast dla kolumn o nieparzystych indeksach - wartosci

% elementow zmniejszamy o podana informacje

for i = 1:size(A,1)

for j = 1:size(A,2)

m = length(A(A(i, < 0));

if(mod(i+j, 2) == 0)

A(i,j) = A(i,j) + m;

else

A(i,j) = A(i,j) - m;

end

end

end

12.

% Argumentem wywolania funkcji jest macierz numeryczna. Dla kazdej kolumny

% macierzy:

%

% * jezeli suma wartosci elementow danej kolumny jest mniejsza od 10,

% wowczas wartosci elementow danej kolumny zastepujemy wartoscia 1

%

% * w przeciwnym wypadku, wartosci elementow kolumny zastepujemy 1

function f(M)

for i = 1:size(M,2)

s = sum(M(:,i));

if(s > 10)

M(:,i) = 1;

else

M(:,i) = -1;

end

end

end


Wyszukiwarka

Podobne podstrony:
MATLAB SCIAGA
MATLAB ŚCIĄGA, Automatyka i robotyka air pwr, IV SEMESTR, MATLAB, Matlab zagadnienia
Matlab cw1 2 zaoczni
cz 1, Matlab moj
Image Processing with Matlab 33
1 sciaga ppt
MATLAB graf(1)
metro sciaga id 296943 Nieznany
kod matlab
ŚCIĄGA HYDROLOGIA
Cw08 Matlab2
AM2(sciaga) kolos1 id 58845 Nieznany
Narodziny nowożytnego świata ściąga
finanse sciaga

więcej podobnych podstron