%% Мйб Уэнфпмз ЕйубгщгЮ уфп MATLAB                             
% *ЦбЯдщн КхсйбкЯдзт* 
%
% ФмЮмб ГещгсбцЯбт РбнерйуфзмЯпх БйгбЯпх

%% БрлЭт бсйимзфйкЭт рсЬоейт
5 + 5
%%
10-2
%%
3*20
%%
30/10
%%
4^2

%% Псйумьт мефбвлзфюн
% БнЬиеуз еньт вбимщфпэ (scalar) уе мйб мефбвлзфЮ рпх пнпмЬжефбй x
x = 5
%% 
% ДзмйпхсгЯб мйбт мефбвлзфЮт y, ме бнЬиеуз вбимщфпэ
y = 10.5
%%
% БнЬиеуз брпфелЭумбфпт рсЬозт уе мйб кбйнпэсйб мефбвлзфЮ z
z = x + y
%%
% Брьксхшз брпфелЭумбфпт брь фзн пиьнз чсзуймпрпйюнфбт фп уэмвплп ;
z = x+y;
%%
% РспвплЮ фймюн мефбвлзфЮт уфзн пиьнз:
disp(z);
%%
% *РспупчЮ:* Бн ден бнбиЭупхме фп брпфЭлеумб мйбт рсЬозт уе мйб мефбвлзфЮ,
% ме ьрпйп ьнпмб иЭлпхме (екфьт кЬрпйщн пнпмЬфщн рпх чсзуймпрпйпэнфбй Юдз
% уфп Matlab убн пньмбфб енфплюн), фп брпфЭлеумб бхфь бнбфЯиефбй бхфьмбфб
% уфз мефбвлзфЮ ans (брЬнфзуз).

%% Дйбнэумбфб
% ДйЬнхумб гсбммЮ
[1 2.5 30 4] % кЬие фй деойЬ фпх ухмвьлпх % еЯнбй учьлйп кбй ден екфелеЯфбй
%%
% Учьлйб уфб ЕллзнйкЬ ейуЬгпнфбй бцпэ бллЬопхме фз глюууб фпх 
% рлзкфсплпгЯпх мЭущ Alt+Shift. Гйб нб ерйуфсЭшпхме уфб БгглйкЬ, рпх еЯнбй
% кбй з глюууб рпх кбфблбвбЯней фп Matlab, обнбрлзкфсплпгпэме Alt+Shift
%%
% ДйЬнхумб уфЮлз
[0; 2; 3; 4]
%%
% ьрпх фп есщфзмбфйкь ; мЭуб уфйт бгкэлет [ ] дзлюней бллбгЮ гсбммЮт
%%
% ЕнбллбкфйкЬ кбй рйь еэкплб:
[0 2 3 4]'  % јрпх ' дзлюней бнбуфспцЮ
%%
% ДйЬнхумб уфЮлз (5 гсбммЭт, 1 уфЮлз) ме 5 уфпйчеЯб мпнЬдет
ones(5,1)
%%
% ДйЬнхумб гсбммЮ (1 гсбммЮ, 4 уфЮлет) ме 4 уфпйчеЯб мпнЬдет
ones(1,4)
%%
% ДйЬнхумб уфЮлз (3 гсбммЭт, 1 уфЮле) ме 3 уфпйчеЯб мзденйкЬ
zeros(3,1)
%%
% ДйЬнхумб гсбммЮ (1 гсбммЮ, 2 уфЮлет) ме 2 уфпйчеЯб мзденйкЬ
zeros(1,2)
%%
% ДйЬнхумб гсбммЮ ме 5 фхчбЯпхт бсйимпэт уфп дйЬуфзмб [0,1]
rand(1,5)
%% 
% Ьллпй 5 фхчбЯпй бсйимпЯ (дйбцпсефйкпЯ брь рсЯн) уфп дйЬуфзмб [0,1]
rand(1,5)
%%
% *РспупчЮ:* КЬие цпсЬ рпх екефелеЯфбй з енфплЮ rand, дзмйпхсгпэнфбй нЭпй
% фхчбЯпй бсйимпЯ, дйбцпсефйкпЯ брь бхфпэт рпх дзмйпхсгЮизкбн фзн 
% рспзгпэменз цпсЬ рпх екфелЭуфзке з енфплЮ rand.

%% Дйбнэумбфб ме бкплпхиЯет бсйимюн
% БкплпхиЯб бсйимюн брь фп 1 мЭчсй фп 7 ме вЮмб 1
1:7
%%
% БкплпхиЯб бсйимюн брь фп 5 мЭчсй фп 30 ме вЮмб 5
5:5:30
%%
% БкплпхиЯб 6 бсйимюн брь фп 0 мЭчсй фп 20
linspace(0,20,6)

%% ЕрйлпгЮ уфпйчеЯщн дйбнэумбфпт
% ёуфщ Энб дйЬнхумб:
x = [10 30 4 2 11 22 6]
%%
% 1п уфпйчеЯп фпх дйбнэумбфпт x
x(1)
%%
% 3п уфпйчеЯп фпх дйбнэумбфпт x
x(3)
%%
% УфпйчеЯб 2 Эщт 5 фпх дйбнэумбфпт x
x(2:5)
%%
% 5o мЭчсй фелехфбЯп уфпйчеЯп фпх дйбнэумбфпт x
%%
x
x(5:end)
%%
% 5п мЭчсй рсп-фелехфбЯп уфпйчеЯп фпх дйбнэумбфпт x
x(5:end-1)
%%
% УфпйчеЯб 1 кбй 3 фпх дйбнэумбфпт x
x
x([1 3])
%%
% ьрпх [1 3] еЯнбй Энб дйЬнхумб
%% 

%% РсЬоейт ме Энб дйбнэумб
% ДзмйпхсгЯб дйбнэумбфпт кбй бнЬиеуз уе мефбвлзфЮ
x = [1 3 7 10 3]
%%
% ўиспйумб (sum) уфпйчеЯщн дйбнэумбфпт
sum(x)
%%
% *РспупчЮ:* З енфплЮ sum еЯнбй Энб рбсЬдейгмб мйбт лейфпхсгЯбт ухнЬсфзузт
% (function) ме ейуесчьменб, едю фп x, кбй еоесчьменб, едю фп брпфЭлеумб
% рпх бнбфЭизке бхфьмбфб уфз мефбвлзфЮ ans

%% 
% Рсьуиеуз вбимщфпэ ме дйЬнхумб
10 + x
%%
% Рпллбрлбуйбумьт вбимщфпэ ме дйЬнхумб
5*x
5.*x % ьрпх .* дзлюней рпллбрлбуйбумь уфпйчеЯб рспт уфпйчеЯп
%%
% ДйбЯсеуз вбимщфпэ ме дйЬнхумб
x/3
x./3 % ьрпх ./ дзлюней дйбЯсеуз уфпйчеЯп рспт уфпйчеЯп
%%
% ѕшщуз уфпйчеЯщн дйбнэумбфпт уе дэнбмз
x.^3 % ьрпх .^ дзлюней эшщуз уе дэнбмз уфпйчеЯп рспт уфпйчеЯп
% РспупчЮ: З енфплЮ x^3 пдзгеЯ уе лЬипт
%% 
% ЕлЬчйуфп кбй мЭгйуфп уфпйчеЯп дйбнэумбфпт
x
min(x)
max(x)

%% РсЬоейт ме дэп дйбнэумбфб
% ДзмйпхсгЯб дйбнэумбфпт кбй бнЬиеуз уе мефбвлзфЮ
x = [1 3 7 10 3]'
y = [5 8 2 1 9]'
%%
% Рсьуиеуз дйбнхумЬфщн
z = x + y
%%
% Рпллбрлбуйбумьт дйбнхумЬфщн уфпйчеЯп рспт уфпйчеЯп
z = x.*y
%%
% ўиспйумб дйбнхумЬфщн кбй эшщуз уе дэнбмз
z = (x+y).^2
%%
% рпх еЯнбй йупдэнбмп ме 
tmp = x+y
z = tmp.^2
%%
% ДйбЯсеуз дйбнхумЬфщн уфпйчеЯп рспт уфпйчеЯп
z = x./y

%% РЯнбкет
% ДзмйпхсгЯб еньт рЯнбкб дйбуфЬуещн (3x4), ме 3 гсбммЭт кбй 4 уфЮлет
A = [2 5 9 1; 4 6 3 7; 9 5 3 1] % јрпх ; дзлюней бллбгЮ гсбммЮт
%%
% ДзмйпхсгЯб нЭпх рЯнбкб ме ьнпмб Atr брь бнбуфспцЮ фпх рЯнбкб A
Atr = A'
%%
% ДзмйпхсгЯб (4x3) рЯнбкб ме уфпйчеЯб мпнЬдет
I = ones(4,3)
%%
% ДзмйпхсгЯб (4x5) рЯнбкб ме уфпйчеЯб мзденйкЬ
O = zeros(4,5)
%%
% ДзмйпхсгЯб мпнбдйбЯпх рЯнбкб (identity matrix) дйбуфЬуещн (3x3)
I = eye(3,3)
%%
% МефбфспрЮ рЯнбкб уе дйЬнхумб уфЮлз ме уфпЯвбгмб уфзлюн фпх рЯнбкб
A(:)

%% РсЬоейт ме Энб рЯнбкб
% ўиспйумб уфпйчеЯщн кбфЬ уфЮлет (column sum) еньт рЯнбкб
A
sum(A)
%%
% рпх еЯнбй йупдэмбнп ме фзн енфплЮ
sum(A,1)
%% 
% ьрпх фп 1 дзлюней фзн 1з дйЬуфбуз (гсбммЭт) фпх рЯнбкб

%% 
% ўиспйумб уфпйчеЯщн кбфЬ гсбммЭт (row sum) еньт рЯнбкб
A
sum(A,2)
%%
% ьрпх фп 2 дзлюней фз 2з дйЬуфбуз (уфЮлет) фпх рЯнбкб
%%
% ўиспйумб вбимщфпэ кбй рЯнбкб
A
5 + A
%%
% Рпллбрлбуйбумьт вбимщфпэ ме рЯнбкб
A
10*A
10.*A   % ьрпх .* дзлюней рпллбрлбуйбумь уфпйчеЯп рспт уфпйчеЯп
%%
% ДйбЯсеуз вбимщфпэ ме рЯнбкб
A
A/3
A./3 % ьрпх ./ дзлюней рпллбрлбуйбумь уфпйчеЯп рспт уфпйчеЯп
%%
% ѕшщуз уфпйчеЯщн рЯнбкб уе дэнбмз
A
A.^2
%%
% ЕлЬчйуфб кбй мЭгйуфб уфпйчеЯб рЯнбкб
A
min(A)
max(A)
%%
% з рбсбрЬнщ енфплЮ хрплпгЯжей фп елЬчйуфп/мЭгйуфп уфпйчеЯп кЬие уфЮлзт.
%
% Гйб нб хрплпгйуфеЯ фп елЬчйуфп/мЭгйуфп уфпйчеЯп ьлпх фпх рЯнбкб 
min(min(A))
max(max(A))
%% 
% фп прпЯп еЯнбй йупдэнбмп ме
min(A(:))
max(A(:))
%%
% Гйб нб хрплпгйуфеЯ фп елЬчйуфп уфпйчеЯп кЬие гсбммЮт:
A
min(A,[],2)
%%
% ьрпх [ ] дзлюней фп кень дйЬнхумб.
%%
% Бн иЭфбме
A
min(A,2)
%%
% фп брпфЭлеумб иб Юфбн фп елЬчйуфп фзт уэгксйузт кЬие уфпйчеЯпх фпх рЯнбкб
% Б ме фпн бсйимь 2, дзлбдЮ, гйб рбсЬдейгмб, min(A(3,4),2)

%% Еэсеуз дйбуфЬуещн рЯнбкб Ю дйбнэумбфпт
% ДйбуфЬуейт рЯнбкб Ю дйбнэумбфпт
x
size(x)
A
size(A)
%%
% Бсйимьт уфпйчеЯщн рЯнбкб Ю дйбнэумбфпт
x
numel(x) % ьрпх numel дзлюней number of elements
A
numel(A)
%%
% "МЮкпт" (length) дйбнэумбфпт Ю рЯнбкб
x
length(x)
length(x')
A
length(A)
length(A') 
%%
% Уфзн ресЯрфщуз рЯнбкб, з енфплЮ length хрплпгЯжей фз мЭгйуфз
% дйЬуфбуз фпх рЯнбкб

%% ЕрйлпгЮ уфпйчеЯщн рЯнбкб
A
%%
% УфпйчеЯп 2зт гсбммЮт кбй 3зт уфЮлзт (i=2, j=3) 
A(2,3)
%%
% УфпйчеЯб 2 Эщт 3 фзт 2зт уфЮлзт (i=2,3, j=2)
A(2:3,2)
%%
% УфпйчеЯб 1 Эщт 3 фзт 2зт гсбммЮт (i=2 j=1,2,3)
A(2,1:3)
%%
% јлб фб уфпйчеЯб фзт 2зт уфЮлзт
A
A(:,2)
A(1:end,2)
%% 
% јлб фб уфпйчеЯб фзт 3зт гсбммЮт
A
A(3,:)
A(3,1:end)
%%
% јлб фб уфпйчеЯб фщн уфзлюн 2 кбй 4
A
A(:,[2 4])

%% ЛпгйкпЯ фелеуфЭт (logical operators)

% Йуьфзфб
1 == 3
% Бнйуьфзфб
1 ~= 3
% Мегблэфесп фпх ( хрЬсчей кбй фп мегблэфесп Ю Яуп >= )
1 > 2
% Мйксьфесп фпх ( хрЬсчей кбй фп мйксьфесп Ю Яуп <= )
1 < 2
%%
% Уе кЬие ресЯрфщуз з брЬнфзуз ans еЯнбй logical: 0 (шехдЭт) Ю 1 (блзиЭт)
whos ans % јрпх з енфплЮ whos дЯней рлзспцпсЯет гйб мйб мефбвлзфЮ

%% 
% Уфзн ресЯрфщуз еньт дйбнэумбфпт 
%% 
x = [1 30 2 5 22 3 4 7]; 
%% 
% *РспупчЮ:* Фп есщфзмбфйкь ; уфь фЭлпт мйбт енфплЮт емрпдЯжей фзн 
% емцЬнйуз фпх брпфелЭумбфпт фзт енфплЮт уфп рбсЬихсп енфплюн 
% (command window). Фп брпфЭлеумб фзт енфплЮт, ьмщт, Эчей Юдз бнбфеиеЯ
% уфз мефбвлЮфЮ x (уфзн рспкеймЭнз ресЯфрщуз), Ю уфз мефбвлзфЮ ans
% (бн ден Эчей псйуиеЯ Ьллз мефбвлзфЮ бнЬиеузт)
%%
% Йуьфзфб
x
x == 1
%% 
% Бнйуьфзфб
x
x ~= 30
%%
% Мегблэфесп Ю Яуп
x
x >= 10
%%
% Мйксьфесп Ю Яуп
x
x <= 7
%%
% Уе кЬие ресЯрфщуз дзмйпхсгеЯфбй Энб logical дйбдйкь (0/1) дйЬнхумб
x
t = x>= 10
whos x
whos t
%%
% ьрпх з енфплЮ whos емцбнЯжей рлзспцпсЯет гйб фпн фэрп фзт мефбвлзфЮт

%% ЕобгщгЮ уфпйчеЯщн брь дйЬнхумб мЭущ лпгйкюн фелеуфюн

% ёуфщ Энб дйЬнхумб x кбй Энбт лпгйкьт фелеуфЮт рпх ецбсмьжефбй уе кЬие
% уфпйчеЯп фпх дйбнэумбфпт
x
x>=5
%%
% З енфплЮ find еоЬгей фпх деЯкфет фпх дйбнэумбфпт гйб фпхт прпЯпхт
% фб бнфЯуфпйчб уфпйчеЯб рлзспэн фзн есюфзуз фпх фелеуфЮ, дзлбдЮ фпхт
% деЯкфет екеЯнщн фщн уфпйчеЯщн рпх бнфйуфпйчпэн уе блзиЮ брЬнфзуз
find(x>=5)
%%
% Гйб нб еоЬгпхме фб Ядйб фб уфпйчеЯб фпх дйбнэумбфпт рпх рлзспэн 
% фзн ересюфзуз фпх фелеуфЮ, чсзуймпрпйпэме
x
x(find(x>=5))
%%
% Ю йупдэнбмб кбй кблэфесб
x(x>=5)

%% БрлЭт гсбцйкЭт рбсбуфЬуейт
rand('state',1234);
%%
% јрпх з рбсбрЬнщ енфплЮ иб ерйфсЭшей фз дзмйпхсгЯб Ядйщн фхчбЯщн бсйимюн
% ме вЬуз фп "бсйимь урьсп" 1234. МрпсеЯфе нб чсзуймпрпйЮуефе ьрпйпн
% "бсйимь урьсп" иЭлефе, бскеЯ нб фпн ихмЬуфе гйб нб дзмйпхсгЮуефе обнЬ 
% фпхт Ядйпхт бсйимпэт уе меллпнфйкЭт екфелЭуейт фзт енфплЮт rand.
%% 
% ёуфщ 2 дйбнэумбфб (Ю дэп уфЮлет еньт рЯнбкб):
x = rand(1,10)'
y = rand(1,10)'
%%
% ГсЬцзмб ме ухнфефбгмЭнет x(i),y(i) гйб кЬие узмеЯп:
plot(x,y,'r.')
%%
% ьрпх 'r.' еЯнбй мйб ухмвплпуейсЬ рпх дзлюней брейкьнйуз узмеЯщн ме фп 
% уэмвплп '.' (кпхкЯдб) кбй 'r' дзлюней кьккйнп (red) чсюмб
%% 
% ЕнбллбкфйкЬ:
plot(x,y,'b-')
%%
% ьрпх 'b-' дзлюней фз чсзуймпрпЯзуз мрлЭ (blue) гсбммЮт рпх енюней фб 
% узмеЯб
%%
% Мрпспэме нб дйбниЮупхме фп рспзгпэменп гсЬцзмб ме Энбн фЯфлп (title):
title('My first plot in Matlab')
%%
% кбй нб рспуиЭупхме ефйкЭффет (labels) уфпхт Ьопнет щт:
xlabel('X')
ylabel('Y')
%%
% ДйЬгсбммб мЯучщн (stem plot):
x = 10:1:19 % ДзмйпхсгЯб дйбнэумбфпт ме 10 фймЭт брь фп 10 мЭчсй фп 19
stem(x,y)
%%
% ЕнбллбкфйкЬ мрпспэме нб "гемЯупхме" фпхт кэклпхт ме чсюмб
stem(x,y,'filled')
%%
% ФспрпрпЯзуз еэспхт фймюн рпх брейкпнЯжпнфбй уфпн боьнб x:
xlim([0 20])
%%
% ФспрпрпЯзуз еэспхт фймюн рпх брейкпнЯжпнфбй уфпн боьнб y:
ylim([0 1.5])
%%
% ФспрпрпЯзуз еэспхт фймюн рпх брейкпнЯжпнфбй кбй уфпхт 2 Ьопнет:
axis([12.5 20 0 1]) 
%% 
% ьрпх пй рсюфет 2 фймЭт, 12.5 кбй 20, еЯнбй фб ьсйб брейкьнйузт фпх Ьопнб x
% кбй пй фелехфбЯет 2 фймЭт, 0 кбй 1, еЯнбй фб ьсйб брейкьнйузт фпх Ьопнб y

%% Бнбжзфюнфбт впЮиейб брь фп Matlab
% Менпэ впЮиейбт гйб мйб ухгкексймЭнз енфплЮ:
help sum
%% 
% деЯфе ерЯузт кбй фзн енфплЮ doc sum
%%
% БнбжЮфзуз мйбт енфплЮт гйб фзт прпЯб фп ьнпмб ден еЯмбуфе уЯгпхспй:
lookfor sum