Twoim problemem jest to, że powszechną NICOŚĆ mylisz z osobistą PUSTKĄ

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

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • jucek.xlx.pl






  • Formularz

    POst

    Post*

    **Add some explanations if needed