Octave

Octave常用指令

5+6
3-2
5*8
1/2
2^6
1==2 %是否等于
1~=2 %是否不等于
1&&0 %AND
1||0 %OR
xor(1,0) %OR
PS1('>> ‘); %把左边的信息栏隐藏成>>
a=3
b='hi'
c=(3>=1);
a=pi; %a=3.1416
disp(a); %打印a
disp(sprintf('2 decimals: %0.2f’,a)) %两位小数显示a
format long %显示长数
format short %显示短数
A = [1 2,;3 4; 5 6]
A=[1 2;
3 4;
5 6]
v=[1 2 3]
v=[1;2;3]
v=1:0.1;2 %生成一个行向量,从一到二,步长为0.1
v=1:6 %生成一个行向量,从一到六,步长为1
ones(2,3) %生成2*3的元素全是1的矩阵
w=zeros(1,3) %生成1*3的元素全是0的矩阵
w=rand(3,3) %生成一个3*3的随机矩阵(范围为0~1)
w=randn(1,3) %生成一个1*3的高斯分布的矩阵,平均值为0,方差和标准差为1
w=-6*sqrt(10)*(randn(1,10000));
hinst(w) %用图表打印出来
hinst(w,50) %五十条柱状的图表
eye(4) %四阶单位矩阵
help %帮助指令

A=[1 2;3 4; 5 6]
sz=size(A) %返回3 2
size(sz) %返回1 2
size(A,1) %返回A的行数
size(A,2) %返回A的列数
v=[1 2 3 4]
length(v) %返回行数和列数最长值 4
length(A) %返回3
length([1;2;3;4;5]) %返回5

pwd %文件路径
ls %显示文件

%读取文件
load featuresX.dat  %以变量名为featuresX储存
load priceY.dat
load('featuresX.dat')
who %显示现有变量
whos %显示变量和他们的具体数据

clear featuresX; %删除变量featuresX
v=priceY(1:10); 取priceY中前10列
save hello.mat v; %存储文件
clear %q全删除
load hello.mat %取回文件

save hello.txt v -ascii %save as text (ASCII)

A=[1 2;3 4;5 6]
A(3,2) %取A的(3,2)值,也就是6
A(2,:) %“:”代表行/列的所有元素,也就是3 4
A(;,2)
A([1 3],:) %取第1和3行的所有值
A(:,2)=[10;11;12] %把A中第二列换成10 11 12
A=[A,[100;101;102]]; %增加一列
A(:) %把A中所有的元素存入一个一列的表格

A=[1 2;3 4;5 6];
B=[11 12; 13 14;15 16]
C=[A B] %把A和B左右组合
C=[A,B] %效果一样,把A和B左右组合
C=[A; B] %把A和B上下组合

A=[1 2;3 4;5 6];
B=[11 12;13 14;15 16];
C=[1 1;2 2];
A*C %矩阵乘法
A .*B  %对位值乘法
A .^B %对位值乘方
v=[1;2;3];
1./v %1除以v中的所有值
1./A %1处以A中的所有值

log(v)
exp(v)
abs(v)
-v %-1*v

v+ones(length(v),1) %v的所有值+1
v+1 %效果如上,所有值+1
A' %矩阵转置
a =[1 15 2 0.5];
val =max(a); %取a中最大值
[val,ind] = max(a); %取val返回最大值,ind返回最大值位置
max(A) %直接返回A中每一列的最大值
a<3 %检查每一个值是不是小于3,并返回一个布尔型矩阵
find(a<3) %返回比3小的数的位置
A=magic(3) %返回一个magic矩阵
[r,c]=find(A>=7) %r是一个1*3矩阵,存着A大于7的值的行数,c则存着列数,两者对应
sum(a) %数据加起来
prod(a) %数据乘法起来
floor(a) %向下降整数
ceil(a) %向上升为整数
max(rand(3),rand(3)) %两个矩阵对位的每一个数值取大,生成一个新的矩阵
max(A,[],1) %取A中每一列的最大值,生成一个一行的矩阵
max(A,[].2) %取A中每一行的最大值,生成一个一列的矩阵
max(max(A)) %取A中最大值
max(A(:)) %取A中最大值

A=magic(9);
sum(A,1); %加和A的每一列,然后生成一个一行的矩阵
sum(A,2); %加和A的每一行,然后生成一个一列的矩阵

sum(sum(A.*eye(9))) %求对角线和(左上右下对角线)
sum(sum(A.*flipud(eye(9)))) %flipud把左上右下对角换成右上左下对角

A=magic(3);
pinv(A);
temp = prinv(A)
temp*A %生成单位矩阵

t=[0:0.01:0.98];
y1=sin(2*pi*4*t);
plot(t,y1);
y2=cos(2*pi*4*t);
plot(t,y2);
plot(t,y1);
hold on;
plot(t,y2,'r'); %输出一条红色的线
xlabel('time’); %添加横坐标
ylabel('value'); %添加纵坐标
legend('sin', 'cos'); %添加图例
title('my plot') %添加标题
print -dpng 'myPlot.png' %输出png图像
close %关闭图像显示窗口
figure(1);plot(t,y1); %开一个窗口显示
figure(2);plot(t,y2); %新开一个窗口显示
subplot(1,2,1); %生成一行两列的图标矩阵
plot(t,y1);
subplot(1,2,2); %切换到第二个表
plot(t,y2);
axis([0.5 1 -1 1]); %更改横纵坐标范围,前两个是横坐标,后两个是纵坐标
clf; %清楚图表

A=magic(5);
imagesc(A); %生成矩阵颜色块,每个色块对应不同数值
imagesc(A),colorbar,colormap gray; %生成灰度图

a=1,b=2,c=3 %接连输出
a=1;b=2;c=3; %接连运行,但是不输出

v=zeros(10,1);
for i=1:10,
v(i)=2^i;
end;

indices=1:10;
for i=indices,
disp(i);
end;

i=1;
while i<=5,
v(i)=100;
i=i+1;
end;

i=1;
while true,
v(i)=999;
i=i+1;
if i==6,
break;
end;
end;

v(1) =2;
if v(1)==1;
	disp('The value is one');
else if v(1)==2,
	disp('The value is two’);
else
	disp('The value is not one or two.');
end;

%在桌面建立一个'squareThisNumber.m' 文件,文件里面写上:
function y=squareThisNumber(x)
y=x^2;

%使用octave先cd到指定目录
addpath('C:\Users\ang\Desktop') %把桌面添加到路径里
squareThisNumber(5)

%在桌面建立一个'squareAndCubeThisNumber.m' 文件,文件里面写上:
function [y1,y2]=squareThisNumber(x)
y1=x^2;
y2=x^3;
%使用octave先cd到指定目录
[a,b]=squareThisNumber(5);

%在桌面建立一个'costFunctionJ(X,y,theta).m' 文件,文件里面写上:
m=size(X,1);
predictions=X*theta;
sqrErrors = (predictions-y).^2;
J=1/(2*m)*sum(sqrErrors);




你可能感兴趣的:(maschine,learning,Octave)