mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-11-26 09:21:00 +03:00
53e121b37d
Added subsection "Common vector functions"
276 lines
5.8 KiB
Markdown
276 lines
5.8 KiB
Markdown
---
|
||
language: Matlab
|
||
contributors:
|
||
- ["mendozao", "http://github.com/mendozao"]
|
||
---
|
||
|
||
Matlab stands for Matrix Laboratory. It is a powerful numerical computing language commonly used in engineering and mathematics.
|
||
|
||
If you have any feedback please feel free to reach me at
|
||
[@the_ozzinator](https://twitter.com/the_ozzinator), or
|
||
[osvaldo.t.mendoza@gmail.com](mailto:osvaldo.t.mendoza@gmail.com).
|
||
|
||
```Matlab
|
||
|
||
|
||
|
||
% Comments start with a percent sign.
|
||
|
||
%{ Multi line comments look
|
||
something
|
||
like
|
||
this %}
|
||
|
||
clear % Erases all your variables from memory
|
||
clc % Erases the writing on your Command Window
|
||
who % Displays all variables in memory
|
||
diary % History of session
|
||
ctrl-c % Abort current computation
|
||
|
||
help command % Displays documentation for command in Command Window
|
||
lookfor command % Searches for a given command
|
||
|
||
|
||
% Output formatting
|
||
format short % 4 decimals in a floating number
|
||
format long % 15 decimals
|
||
fprintf
|
||
|
||
% Variables & Expressions
|
||
myVariable = 4 % Notice Workspace pane shows newly created variable
|
||
myVariable = 4; % Semi colon suppresses output to the Command Window
|
||
4 + 6 % ans = 10
|
||
8 * myVariable % ans = 32
|
||
a = 2; b = 3;
|
||
c = exp(a)*sin(pi/2) % c = 7.3891
|
||
|
||
% Logicals
|
||
1 > 5 % ans = 0
|
||
10 >= 10 % ans = 1
|
||
3 ~= 4 % Not equal to -> ans = 1
|
||
3 == 3 % equal to -> ans = 1
|
||
3 > 1 && 4 > 1 % AND -> ans = 1
|
||
3 > 1 || 4 > 1 % OR -> ans = 1
|
||
~1 % NOT -> ans = 0
|
||
|
||
% Strings
|
||
a = 'MyString'
|
||
length(a) % ans = 8
|
||
a(2) % ans = y
|
||
[a,a] % ans = MyStringMyString
|
||
|
||
|
||
% Cells
|
||
a = {'one', 'two', 'three'}
|
||
a(1) % ans = 'one' - returns a cell
|
||
char(a(1)) % ans = one - returns a string
|
||
|
||
|
||
% Vectors
|
||
x = [4 32 53 7 1]
|
||
x(2) % ans = 32, indices in Matlab start 1, not 0
|
||
x(2:3) % ans = 32 53
|
||
x(2:end) % ans = 32 53 7 1
|
||
|
||
x = [4; 32; 53; 7; 1] % Column vector
|
||
|
||
x = [1:10] % x = 1 2 3 4 5 6 7 8 9 10
|
||
|
||
% Matrices
|
||
A = [1 2 3; 4 5 6; 7 8 9]
|
||
% Rows are seperated with a semi colon, each element is seperated with space or comma
|
||
% A =
|
||
|
||
% 1 2 3
|
||
% 4 5 6
|
||
% 7 8 9
|
||
|
||
A(2,3) % ans = 6, A(row, column)
|
||
A(2,3) = 42 % Update row 2 col 3 with 42
|
||
% A =
|
||
|
||
% 1 2 3
|
||
% 4 5 42
|
||
% 7 8 9
|
||
|
||
A(2:3,2:3) % Creates a new matrix from the old one
|
||
%ans =
|
||
|
||
% 5 42
|
||
% 8 9
|
||
|
||
A(:,1) % All rows in column 1
|
||
%ans =
|
||
|
||
% 1
|
||
% 4
|
||
% 7
|
||
|
||
A(1,:) % All columns in row 1
|
||
%ans =
|
||
|
||
% 1 2 3
|
||
|
||
A(:, [3 1 2]) %Rearrange the columns of original matrix
|
||
%ans =
|
||
|
||
% 3 1 2
|
||
% 42 4 5
|
||
% 9 7 8
|
||
|
||
A(1, :) =[] %Delete the first row of the matrix
|
||
|
||
size(A) % ans = 3 3
|
||
|
||
A' % Transpose the matrix
|
||
|
||
[A ; A] % Concatenation of matrices
|
||
%ans =
|
||
|
||
% 1 2 3
|
||
% 4 5 42
|
||
% 7 8 9
|
||
% 1 2 3
|
||
% 4 5 42
|
||
% 7 8 9
|
||
|
||
|
||
%Element by Element Arithmetic VS Matrix Arithmetic
|
||
A * B % Matrix multiplication
|
||
A .* B % Multiple each element in A by its corresponding element in B
|
||
|
||
|
||
%Plotting
|
||
x = 0:.10:2*pi % Creates a vector that starts at 0 and ends at 2*pi with increments of .1
|
||
y = sin(x)
|
||
plot(x,y)
|
||
xlabel('x axis')
|
||
ylabel('y axis')
|
||
title('Plot of y = sin(x)')
|
||
axis([0 2*pi -1 1]) % x range from 0 to 2*pi, y range from -1 to 1
|
||
plot(x,y1,’-’,x,y2,’--’,x,y3,’:’) % For multiple functions on one plot
|
||
|
||
|
||
% .mat files
|
||
% Save the variables in your Workspace
|
||
|
||
%M-file Scripts
|
||
%A script file is an external file that contains a sequence of statements.
|
||
%Better than typing your code in the Command Window
|
||
%Have .m extensions
|
||
|
||
|
||
%M-file Functions
|
||
%Programs that accept inputs and return an output
|
||
%Have .m extensions
|
||
% double_input.m - naming your ,m file the same as you call it in the file is required
|
||
function output = double_input(x)
|
||
%double_input(x) returns twice the value of x
|
||
output = 2*x;
|
||
end
|
||
double_input(6) % ans = 12
|
||
|
||
%User input
|
||
a = input('Enter the value: ')
|
||
|
||
%Reading in data
|
||
fopen(filename)
|
||
|
||
%Output
|
||
disp(a) % Print out the value of variable a
|
||
disp('Hello World') % Print out a string
|
||
fprintf % More control display to Command Window
|
||
|
||
%Conditional statements
|
||
if a > 15
|
||
disp('Greater than 15')
|
||
elseif a == 23
|
||
disp('a is 23')
|
||
else
|
||
disp('neither condition met')
|
||
end
|
||
|
||
%Looping
|
||
for k = 1:5
|
||
disp(k)
|
||
end
|
||
|
||
k = 0;
|
||
while (k < 5)
|
||
k = k + 1;
|
||
end
|
||
|
||
|
||
%Connecting to a MySQL Database
|
||
dbname = 'database_name';
|
||
username = 'root';
|
||
password = 'root';
|
||
driver = 'com.mysql.jdbc.Driver';
|
||
dburl = ['jdbc:mysql://localhost:8889/' dbname];
|
||
javaclasspath('mysql-connector-java-5.1.xx-bin.jar'); %xx depends on version, download available at http://dev.mysql.com/downloads/connector/j/
|
||
conn = database(dbname, username, password, driver, dburl);
|
||
sql = ['SELECT * from table_name where id = 22'] %Example sql statement
|
||
a = fetch(conn, sql) %a will contain your data
|
||
|
||
|
||
% Common math functions
|
||
sin(x)
|
||
cos(x)
|
||
tan(x)
|
||
asin(x)
|
||
acos(x)
|
||
atan(x)
|
||
exp(x)
|
||
sqrt(x)
|
||
log(x)
|
||
log10(x)
|
||
abs(x)
|
||
min(x)
|
||
max(x)
|
||
ceil(x)
|
||
floor(x)
|
||
round(x)
|
||
rem(x)
|
||
rand
|
||
randi
|
||
|
||
% Common constants
|
||
pi
|
||
NaN
|
||
inf
|
||
|
||
% Common matrix functions
|
||
zeros(m,n) % m x n matrix of 0's
|
||
ones(m,n) % m x n matrix of 1's
|
||
diag(A) % Extracts the diagonal elements of a matrix
|
||
eye(m,n) % Indentity matrix
|
||
inv(A) % Inverse of matrix A
|
||
det(A) % Determinant of A
|
||
eig(A) %Eigenvalues and eigenvectors of A
|
||
isempty(A) % Tests if array is empty
|
||
isequal(A, B) %Tests equality of two arrays
|
||
numel(A) %Number of elements in matrix
|
||
triu(x) % Returns the upper triangular part of x
|
||
tril(x) % Returns the lower triangular part of x
|
||
cross(A,B) % Returns the cross product of the vectors A and B
|
||
dot(A,B) % Returns the scalar product of the vectors A and B. A and B must be vectors of the same length.
|
||
transpose(A) % Returns the transpose of A
|
||
|
||
% Common vector functions
|
||
max %largest component
|
||
min %smallest component
|
||
length %length of a vector
|
||
sort %sort in ascending order
|
||
sum %sum of elements
|
||
prod %product of elements
|
||
median %median value
|
||
mean %mean value
|
||
std %standard deviation
|
||
|
||
|
||
```
|
||
|
||
## More on Matlab
|
||
|
||
* The official website [http://http://www.mathworks.com/products/matlab/](http://www.mathworks.com/products/matlab/)
|