五: Octave基本操作
程序员文章站
2023-12-30 20:43:04
...
1 基本运算
+ - * / ^ (加减乘除次方)
== ~= (相等不等判断)
&& || (逻辑运算)
xor(a,b) (异或运算)
% 注释符
2 变量
a=1
a='teststr'
a=(a>=2)
a=pi
format long/short (格式控制)
disp(sprintf('2 decimals: %0.2f',a)) (自定义格式输出)
who/whos (查看变量)
clear xx (清除变量)
3 矩阵
A=[1 2;3 4;5 6]
B=[1 2 3] (行向量)
C=[1;2;3] (列向量)
v=1:0.1:2 (步长控制向量生成)
ones(m,n) (一矩阵)
zeros(m,n) (零矩阵)
rand(m,n) (随机矩阵)
randn(q,n) (高斯分布)
eye(n) (单位矩阵)
magic(n) (魔幻矩阵)
size(A) (返回m,n 矩阵维度)
length(B) (返回向量长度)
------------------------------
hist(A) (直方图)
4 数据处理
加载: load
存储:save
选取数据:A(2,3) A(2,:) A(:,3) A([1 3],:)
横向拼接:C=[A B]
竖向拼接:C=[A;B]
6 数据计算
A+B
A*B(矩阵乘法)
A.*B(点乘)
A+1
A*2
log(A)
exp(A)
abs(A)
-A
floor(A)
ceil(A)
sum(A)
prod(A)
max(A)
max(A,[],1) (列维度)
max(A,[],2) (行维度)
max(max(A)) / max(A(:))
A' (转置)
pinv(A) (逆矩阵)
A<3 (返回判断值)
find(A<3) (直接返回判断角标值)
[r,z]=find(A<3) (返回两个向量,r代表行,z代表列,组合指定判断符合条件的数据)
7 绘图
测试数据:
% t=[0:0.01:0.98];
% y1=sin(2*pi*4*t);
% y2=cos(2*pi*4*t);
plot(t,y1) (正弦函数)
plot(t,y2,'r') (余弦函数)
-----------------------
hold on; (附加图)
xlabel('time');
ylabel('value');
legend('sin','cos');
title('my plot');
axis([0.5 1 -1 1]); (坐标轴调整)
----------------------
figure(1);plot(t,y1);
figure(2);plot(t,y2);
----------------------
分格子区域作图:
subplot(1,2,1);plot(t,y1);
subplot(1,2,2);plot(t,y2);
-------------------------
imagesc(magic(15)),colorbar,colormap gray
8 控制语句
for i = 1:10
v(i) = 2^i;
end;
-------------------------
while i <= 5
v(i) = 100;
i = i+1;
end;
-------------------------
while true,
v(i) = 500;
i = i+1;
if i == 8,
break;
end;
end;
-------------------------
if v(1) == 1,
disp('value is 1');
elseif v(1) == 2,
disp('value is 2');
else
disp('value is not 1/2');
end;
------------------------
function定义:(可设置多返回值)
如:函数文件SquareAndCubeThisNumber.m
调用测试:
9 向量化
可简化循环处理、提升效率
如:批梯度下降函数
按照传统思想需要对所有的特征参数循环求解,向量化后
theta为n+1维参数向量,阿尔法为常数,黄色标记区域也为一个n+1维向量,第i项数据为每条样本代价差*样本第i项特征数据求和求平均;(n为特征数,m为样本数)
则此计算可以转化为n+1维向量运算;
------------------------------------------------------------------------------------------------------------------------------------
文章内容学习整理于吴教授公开课课程与黄博士笔记,感谢!