Octave的使用及操作

  • 基础的算数加减
5 + 6
5 - 2
1 / 2
2 ^ 6
  • 逻辑运算
1 == 2  % false  百分号是注释 返回值是0
1 ~= 2  %不等于    返回值是1
1 && 0  %and
1 || 0  % or

 * 使用command:PS1('>>  ')可以移动命令行光标到最左端
  • 赋值运算
a = 3   % 不加分号将会打印
a = (3 > 1) % a = 1
a = pi
display(a)  % 打印2
  • 打印操作
display(a)
display(sprintf('2 decimals: %0.2f', a))  % 传统C语言的打印格式
  • 设置数据格式长度
format long  % 使用多字节
format short  % 使用少字节
  • 生成矩阵
A = [1 2;3 4;5 6]
v = [1 2 3] % 这是一个行向量
v = [1; 2; 3] % 这是一个列向量
v = 1:0.1:2  % 生成从1到2步长为0.1的行向量(包括两端的1和2)
v = 1:6  % 从1到6默认步长为1
A = ones(2,3) % 2乘3的全1矩阵
A = 2*ones(2,3)
A = zeros(2,3) % 2乘3的全0矩阵
A = rand(2,3 )%  2乘3的随机数矩阵
A = randn(3,3) % 3乘3的标准正态分布随机数
A = eye(7) % 对角阵

sz = size(A) % 返回一个一行二列矩阵(行数,列数)
size(A,1) % 返回行数
size(A,2) % 返回列数
length(A) % 返回列数和行数中的最大值
  • 直方图显示
w = randn(1,10000))% 标准正太公式
hist(w)
hist(w,50) # 显示50个段
  • 导入和输出数据
导入数据:
	load filename.dat
	load('filename')
查看全局变量:
	who % 查看当前范围内的变量
	whos % 查看当前范围内变量的详细信息(bytes、size、class)
	clear variable % 在当前范围内消除变量
	clear % 消除所有全局变量
输出数据:
	save filename.mat variable % 将变量保存为matlab文件,二进制格式
	save filename.txt variable -ascii % 将变量保存为人可读的ascii格式
  • 使用数据
矩阵索引
	A = [1 2; 3 4; 5 6]
	A(3,2) # 第三行第二列
	A(3,:) # 第三行所有数据
	A([1 3],:) # 第一和第三行的所有数据
	A([1,3],:) = [1,1,1;2,2,2] # 给第一和第三行赋值
矩阵添加行列
	A = [A,[1;1;1]] % 向A矩阵添加新列
	A = [A;[1,1,1]] % 向A矩阵添加新行
	A = [A;zeros(1,3)]
	b = A(:) # 将A的所有数据转变为列向量赋值给b
矩阵合并
	A = ones(4,4) B = zeros(4,4)
	C = [A,B] # 左右合并
	C = [A;B] # 上下合并
  • 矩阵计算
A = [1 2;3 4; 5 6]
B = ones(3,2)
C = ones(2,2)
矩阵乘法
	D = A*C % 3*2矩阵
位置乘除法
	D = A .* B % 3*2矩阵,各个位置分别相乘
	D = A ./ B % 3*2矩阵,各个位置相除
	A .^ 2 % A矩阵各个位置平方
其他运算
	D = log(A) % 对每个位置做对数运算
	D = exp(A) % 对每个位置做指数运算
	D = abs(A) % 对每个位置做绝对值运算
	D = -A  % 对每个位置取负
	D = A + 1 % 对每个位置加1
转置矩阵
	D = A'
  • 函数的使用
常见函数
最大值:
	val = max(A) % 默认为a矩阵的列最大值
	max(max(A)) % 返回A矩阵的最大值  == max(A(:))
	max(a,[],1) % a矩阵的列最大值
	max(a,[],2) % a矩阵的行最大值
	max(A,B) % 返回两个矩阵对应位置中最大的值
和:
	sum(a) % a中所有元素求和
	sum(a,dim) % dim为1时求列和,为2时求行和
其他运算:
	prod(a,dim) % a中所有元素求积
	floor(a) % a中所有元素向下取整
	ceil(a) % a中所有元素向上取整
	rand(n) % 生成n*n的随机矩阵(元素在0-1范围内)
	[val,ind] = max(a) % val 为最大值,ind 为最大值的角标
	find(A < 3) % 返回A中小于3的角标,若是矩阵由第一列从上向下计数
	[r,c] = find(A<3) % r为表示True元素的行数,c为其对应元素的列数
	A < 3 % 返回值只有1和0的矩阵,1表示True,0表示False
	A = magic(n) % 返回n*n的矩阵,其每行每列以及对角线为相同值
求矩阵的对角阵
	A .* eye(n) % 让其与同纬度的单位矩阵相乘
	diag(A) % 以列形式返回对角阵元素
	flip(eye(9)) 斜对角单位矩阵
求逆矩阵
	pinv(A) % 伪求逆,当矩阵不可逆时也有值
	A * pin(A) == eye(n)
  • 如何画图
t = [0:0.01:1]
y = sin(8*pi*t)
画图操作
	plot(t,y)
	hold on; % 将图像固定以便继续添加内容
	y1 = cos(8*pi*t)
	plot(t,y1,'r') % 以红色显示
	xlabel('time')
	ylabel('value') % y轴名称
	title('my figure') % 给图片添加名称
	legend('sin','cos') % 给直线添加标签
打开多个图片
	figure(1);plot(x,y1);
	figure(2);plot(x,y2);
将图片分为多个显示
	subplot(1,2,1) % 将一个图片分为两份显示第一个
	plot(x,y1) % 在第一个位置画图
	subplot(1,2,2); plot(x,y2); % 在第二个位置画图
以图片形式显示矩阵
	imagesc(A) % 以坐标形式的不同颜色显示矩阵中不同的值
	imagesc(A),colorbar ,colormap grey;% 黑白显示并显示黑白深度
设置坐标轴
	axis([0.5 1 -1 1]) % 将x轴设置为0.5到1 将y轴设置为-1到1
关闭图片
	close
保存图片
	print -dpng 'myplot.png'

在这里插入图片描述

  • 如何使用控制语句
v = zeros(10,1)
for循环
	for i = 1:10,
	v(i) = 2^i
	end;
while循环
	i = 1;
	while i <= 5,
		v(i) = 100;
		i  = i + 1
	end;
break语句
	i = 1
	while true,
		v(i) = 999
		i = i+1;
		if i == 6,
			break;
		end;
	end;
if语句
	v = 1
	if v == 1,
		disp('this value is one');
	elseif v == 2,  % elseif   不是elif
		disp('the value is two');
	else, 
		disp('this value is not two or one');
	end;
  • 使用函数的方法
1.首先在外部书写函数,之后将工作区cd到路径使用函数
2.% octave search path (advanced/optional)
  addpath('c:\Users\pinkman\Desktop') % 将路径添加到搜索路径内
  之后便可以直接使用
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值