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