using octave

PS!(‘>> ‘): 改变提示符

变量

a = 3 会输出
a = 3; 不会输出,分号会阻止输出
disp(a) 打印
disp(sprintf(‘2 decimals: %0.2f’,a)) 保留两位小数
a = pi
format short

矩阵
A = [1 2; 3 4]
v = 1:0.1:2 从1开始步长为0.1增长到2的向量
v = 1:6 1到6步长为1
ones(2,3) r = 2; c = 3的都是1的矩阵
A = 3*ones(2,4)
zeros(2,3) 都是0的
rand(3,3) 随机数的
randn(1,3) 高斯分布的3个数 均值=0, 标准差=1
hist(w) 直方图
hist(w,50) 更多直条的
eye(4) 单位矩阵
help eye 说明书
help help
sqrt(n) 开根号
size(A) 矩阵大小
size(A,1) 行
size(A,2) 列
length(v) 长的那一段的长度
A(3,2) A32
A(2,:) 输出第二行所有的
A(:,2) 输出第二列所有的
A(:,2) = [1;2;3;3] 改变A的第二列
A([1 3],:) 输出1 3行所有的
A = [A, [1;1;2;3]] 在A的右边再加一列
A(:) 输出所有元素,放到一列
C = [A B] = [A, B] A和B合成一个矩阵(左右放)
C = [A;B] 上下放

移动数据
pwd 当前路径
load xxxx.dat
load(‘xxx.dat’)
who 有哪些变量
whos 详细信息
clear A 删除变量
clear 删除所有
v = prices(1:10) 把prices的前10个赋值给v
save xxx.mat v; 保存v在当前路径(二进制)
save xxx.txt v;

计算数据
A.*B A中的每一个元素都和B相乘
A. ^2 A中每个元素的平方
1./ v 1除以v中的每个数
log(v)
exp(v) e的v次方
abs(v)
-v
v + ones(length(v),1) v中的每个元素+1
v + 1 同上
A’ A的转置
max(a) 最大值
[val,ind] = max(a) a的最大值的index
a < n 返回1 0
find(a < 3) 返回小于3的
magic(2) 直线加起来相等的22
[r,c] = find(A>n) A中大于n的行列
sum(a) 求和
sum(a:1) 每列和
sum(a:2) 每行和
prod(a) 求积
ceil(a) 向上取整
floor(a) 向下取整
max(rand(3),rand(3)) 由两个rand3
3矩阵里较大的数组成的3*3矩阵
max(A,[],1) 每列最大值
max(A,[],2) 每行最大值
max(A) 默认是每列
max(max(A)) 整个矩阵最大值
max(A(:)) 同上
flipud(A) 垂直翻转
pinv(A) 逆矩阵

数据绘制
hist(w) 直方图

t = [0:0.01:0.98]
y1 = sin(2pi4*t)
plot(t,y1) x轴为t,y轴为y1

plot(t,y1);
hold on;
plot(t,y2,’r’) 两张图画在一起
xlabel(‘time’)
ylabel(‘value’) x,y轴加上标签
legend(‘sin’,’cos’)
title(‘xxx’)
print -dpng ‘a.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]) x轴为0.5到1,y轴为-1到1

clf; 清除figure
imagesc(A)
imagesc(A),colorbar,colormap gray; 不同深浅的颜色对应不同的值

控制语句
for
v = zeros(10,1)
for i = 1:10
v(i) = 2^i;
end;

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

if
if i == 6;
//do something
end;

if v(1) == 1;
disp(‘aaa’);
elseif v(1) == 2;
disp(‘bbb’);
else
disp(‘ccc’);
end;

定义和使用函数
建与函数同名的.m文件,eg.
function y = fun1(x)
y = x^2

function [y1,y2] = fun1(x)
y1 = x^2;
y2 = x^3;

使用 [a,b] = fun1(x)