Song Jiaming | 31 Oct 2017
Octave is a mathematical programming language. It is a good alternative to Matlab.
In this blog, I will list down some basic but useful commands of it.
Description | Commands | Example/Remark |
---|---|---|
Show >> | PS1(‘>>’) | - |
Help | help eye | Get description for eye function |
Show path | pwd | where you currently at |
Show files | ls | list all directories in this file |
Move to a file | cd ‘File Path | Go to the destinated directory |
Load data file | load xxx.dat == load(‘xxx.dat’) | - |
Show varables | who | varaibles I have in current scope |
Show varables 2 | whos | view more details |
User input | input(‘’); | name=input(‘SJM’); |
Clear | clear | - |
Save | save hello.mat v | Save v into hello.mat (binary format) |
Save 2 | save hello.txt v -ascii | human readable file |
Description | Commands | Example/Remark |
---|---|---|
Power | ^ | x^2 |
Comment | % | - |
Equal | == | 1==2 |
Not equal | ~= | 1~=2 |
And | && | - |
Or | || | - |
XOR | xor(m,n) | xor(1,0)=1, xor(1,1)=0 |
Supress output | ; | a=3; No output will be shown |
String | ’’ | b = ‘hi’ |
Pi | pi | pi |
disp(a) | - | |
Printf | disp(sprintf(‘2 decimals: %0.2f’,a)) | |
Format | format long/short | How many digits to display |
Histogram | hist(w) | Histogram |
Histogram 2 | hist(w,n) | hist(randn(10000,1),30) (30 columns) |
Description | Commands | Example/Remark |
---|---|---|
Row Vector | [ ] | [ 1 2 3 ] |
Column vector | [;] | [1;2;3] |
Matrix | [space and ;] | A = [1 2;3 4;5 6] |
Sequence | start:step:stop | 1:0.1:2 (2 is included) |
Matrix of 1 | ones(m,n) | ones(2,3) |
Matrix of 0 | zeros(m,n) | zeros(2,3) |
Random number | rand(m,n) | rand(2,3) |
Random number 2 | rand(m,n) | values follows Gaussian Distribution |
Identity matrix | eye(n) | eye(4) |
Magic matrix | magic(n) | nxn matrix with the same row/column/diag sum |
Lower Triangular | tril(A) | make A lower triangular |
Upper Triangular | triu(A) | make A upper triangular |
Description | Commands | Example/Remark |
---|---|---|
Size | size(A) | A: Matrix |
Num of rows | size(A,1) | 1st dimension of A |
Num of columns | size(A,2) | 2nd dimmension of A |
Length | length(v) | length of vector v |
Get an element | A(m,n) | element at row m col n |
Get a row | A(m,:) | all element along mth row |
Get a column | A(:,n) | all element along nth column |
Get rows | A([1 3],:) | all element from 1st and 3rd row |
Append column | A = [A,[1;2;3]] | Append col at the end of A |
Flattern | A(:) | put A into a single verctor(column by column) |
Concatenate | [A B] | concatenate A and B |
Concatenate 2 | [A;B] | put B below A |
Get part of array | v(1:10) | first 10 element of v |
Description | Commands | Example/Remark |
---|---|---|
Multiplication | * | A*B |
Multiply piecewisely | .* | A.*B |
Divide piecewisely | ./ | 1./v |
Log | log(v) | - |
Exponential | exp(v) | - |
Absolute | abs(v) | |
Transpose | ’ | A’ |
Max of vector | max(v) | v is a vector |
Max and its index | [val, ind] = max(v) | val=max(v), ind = index of val |
Max of matrix | max(A) | max of each col of A |
Filter a vector with a critera | v < n | if (the entry of v) < n, return 1, else 0 |
Filter a vector 2 | find(v < n) | show index of entries in v which are less than n |
Filter a matrix with a critera | [r,c]=find(A>=n) | r=row index, c=col index, of the entry in A that is > n |
Sum | sum(v) | sum of all entries in v |
Sum by column | sum(A,1) | each column sum up of A |
Sum by row | sum(A,2) | each row sum up of A |
Product | prod(v) | product of all entries in v |
Floor | floor(v) | floor of all entries |
Ceiling | ceil(v) | ceiling of all entries |
Max between 2 matrices | max(A,B) | take max of entry of A,B |
Column-wise max | max(A,[],1) | column wise maximum of A |
Row-wise max | max(A,[],2) | row wise maximum of A |
Max of matrix | max(max(A)) | - |
Flipping | flipud(A) | 1230->0321 |
Pseudo inverse | pinv(A) | - |
Let y1 = sin(t),y2 = cos(t)
plot(t,y1)
hold on
plot(t, y2, 'r')
axis[x1,x2. y1,y2]
xlabel('time')
ylabel('value')
legend('sin', 'cos')
title('my plot')
print -dpng 'myPlot.png'
close
clf
subplot(m,n)
subplot(m,n,i)
imagesc(A)
imagesc(A), colourbar, colormap gray;
for i = 1:10,
v(i) = 2^i;
end;
Or,
indices = 1:10
for i=indices,
disp(i)
end;
i=1;
while i<=5,
v(i) =100;
i=i+1;
end;
Or,
while true,
v(i) = 999;
I = i+1;
if i==6,
break;
end;
end;
if v(1) ==1,
statement;
elseif v(1) ==2,
disp();
else
statement;
end;
Below, nameOfFunction is the function name, x is the parameter.
This function returns y.
function y = nameOfFunction(x)
y=x^2;
end
nameOfFunction(2)
=> ans = 4Note: Let twoValues()
be a function which returns 2 values [c,d]
Then [a,b] = twoValues()
gives a=c and b=d.