基础操作:
在
Octave
O
c
t
a
v
e
中的部分符号表示:
不等于:~=
等于:==
逻辑与:&&
逻辑或:||
异或运算:
XOR(A,B)
X
O
R
(
A
,
B
)
变量赋值: a=3 a = 3 如果给一个变量赋值,不希望在屏幕显示结果,可以在命令后面加上分号 (如:a=3;) ( 如 : a = 3 ; )
复杂的屏幕显示可以用
disp()
d
i
s
p
(
)
命令来实现;
format
f
o
r
m
a
t
用来控制输出格式,例如:
format long
f
o
r
m
a
t
l
o
n
g
建立矩阵:
A=[12 ;34 ;56]
A
=
[
1
2
;
3
4
;
5
6
]
A
A
为矩阵,‘;’作用为矩阵内换行
V=1:0.1:2 V = 1 : 0.1 : 2 V V 表示一组值,从数值开始,步长为 0.1 0.1 ,直到增加到2。
ones(2,3)
o
n
e
s
(
2
,
3
)
表示生成一个
2×3
2
×
3
的矩阵,矩阵中的所有元素都为1;
2∗ones(2,3)
2
∗
o
n
e
s
(
2
,
3
)
生成一个
2×3
2
×
3
的矩阵,矩阵中的所有元素都为2;
zeros(1,3)
z
e
r
o
s
(
1
,
3
)
生成一个
1×3
1
×
3
的矩阵,元素全部是0;
rand(1,3)
r
a
n
d
(
1
,
3
)
表示
1×3
1
×
3
矩阵中的元素均为随机值(取自均值为
0.5
0.5
,幅度为
0∼1
0
∼
1
的均匀分布);
W=randn(1,3)
W
=
r
a
n
d
n
(
1
,
3
)
表示
1×3
1
×
3
矩阵,元素取自均值为
0
0
,方差为的高斯分布。
hist(W)
h
i
s
t
(
W
)
命令表示绘制直方图;
eye(4)
e
y
e
(
4
)
表示生成一个
4×4
4
×
4
的单位矩阵;
help
h
e
l
p
命令用来了解其他命令的功能,例如:
helpeye
h
e
l
p
e
y
e
。
移动数据:
size(A)
s
i
z
e
(
A
)
命令返回矩阵
A
A
的维度,结果形式为一个的矩阵;
size(A,1)
s
i
z
e
(
A
,
1
)
返回A的行数,
size(A,2)
s
i
z
e
(
A
,
2
)
返回A的列数;
若存在向量 V=[1,2,3,4] V = [ 1 , 2 , 3 , 4 ] , length(V) l e n g t h ( V ) 返回最大维度的大小;
pwd
p
w
d
命令显示当前路径;
用
cd
c
d
命令切换到所需路径下;
ls
l
s
命令显示路径下所有文件;
在 Octave O c t a v e 中,用 load(′文件名′) l o a d ( ′ 文 件 名 ′ ) 来读入文件;
who
w
h
o
命令可以显示出在当前
Octave
O
c
t
a
v
e
空间中的所有变量名;
whos
w
h
o
s
命令可以详细显示所有变量的信息;
clear
c
l
e
a
r
变量名:用来清除变量;
clear
c
l
e
a
r
:清除所有变量;
save
s
a
v
e
文件名 变量名:表示把变量存入文件内;
save
s
a
v
e
文件名 变量名
−ascii
−
a
s
c
i
i
:把变量以固定编码形式存入文件内;
A(3,2)
A
(
3
,
2
)
取矩阵
A
A
的元素;
A(2,:)
A
(
2
,
:
)
取矩阵
A
A
的第行元素;
A([1 3],:)
A
(
[
1
3
]
,
:
)
表示取矩阵的第
1、3
1
、
3
行元素;
A=[A,[100;101;102]]
A
=
[
A
,
[
100
;
101
;
102
]
]
表示在矩阵
A
A
的右侧加一列;
表示把矩阵
A
A
的所有元素放入一个向量。
计算数据:
在中, ∗ ∗ 就是矩阵乘法,设为 m∗n m ∗ n 矩阵, B B 为矩阵,则 C=A∗B C = A ∗ B 为 m∗t m ∗ t 矩阵, Cij C i j 元素为 A A 的第行乘以 B B 的第列;
.∗ . ∗ 只应用于同型矩阵,若 A A 为矩阵, B B 也必须是矩阵, C=A.∗B C = A . ∗ B 也为 m∗n m ∗ n 矩阵, Cij=Aij∗Bij C i j = A i j ∗ B i j ;
若 C=A.∧2 C = A . ∧ 2 ,则 Cij=Aij∗Aij C i j = A i j ∗ A i j ;
V=[1;2;3]
V
=
[
1
;
2
;
3
]
,则:
C=1./V
C
=
1.
/
V
,则
Cij=1/Vij
C
i
j
=
1
/
V
i
j
;
C=log(V)
C
=
l
o
g
(
V
)
,则
Cij=log(Vij)
C
i
j
=
l
o
g
(
V
i
j
)
;
C=exp(V)
C
=
e
x
p
(
V
)
,则
Cij=exp(Vij)
C
i
j
=
e
x
p
(
V
i
j
)
;
−V=−1∗V
−
V
=
−
1
∗
V
;
V+1
V
+
1
,则
Vij=Vij+1
V
i
j
=
V
i
j
+
1
。
若
a=[1 15 2 0.5]
a
=
[
1
15
2
0.5
]
,
max(a)=15
m
a
x
(
a
)
=
15
,表示求向量元素的最大值;
命令
a<3
a
<
3
的结果:
[1 0 1 1]
[
1
0
1
1
]
;
find(a<3)
f
i
n
d
(
a
<
3
)
的结果:
[1 3 4]
[
1
3
4
]
给出元素的位置;
A=magic(3)=⎡⎣⎢834159672⎤⎦⎥
A
=
m
a
g
i
c
(
3
)
=
[
8
1
6
3
5
7
4
9
2
]
magic
m
a
g
i
c
函数返回一个矩阵,它的所有行、列、对角线的元素加起来都等于相同的值。
[r,c]=find(A>=7)
[
r
,
c
]
=
f
i
n
d
(
A
>=
7
)
结果
r=⎡⎣⎢132⎤⎦⎥c=⎡⎣⎢123⎤⎦⎥
r
=
[
1
3
2
]
c
=
[
1
2
3
]
意思是找出
A
A
中大于等于的元素,
r
r
表示行位置,表示列位置。
sum(a)
s
u
m
(
a
)
为求
a
a
向量所有元素之和;
为求
a
a
向量所有元素乘积;
为
a
a
向量元素均向下取整;
为
a
a
向量元素均向上取整。
,则
Cij=max(Aij,Bij)
C
i
j
=
m
a
x
(
A
i
j
,
B
i
j
)
;
max(A,[],1)
m
a
x
(
A
,
[
]
,
1
)
求每一列最大值;
max(A,[],2)
m
a
x
(
A
,
[
]
,
2
)
求每一行最大值;
上述
magic
m
a
g
i
c
矩阵
A
A
中:
;
max(max(A))=9
m
a
x
(
m
a
x
(
A
)
)
=
9
。
sum(A,1)
s
u
m
(
A
,
1
)
求得每一列的总和;
sum(A,2)
s
u
m
(
A
,
2
)
求得每一行的总和。
eye(3)=⎡⎣⎢100010001⎤⎦⎥flipud(eye(3))=⎡⎣⎢001010100⎤⎦⎥ e y e ( 3 ) = [ 1 0 0 0 1 0 0 0 1 ] f l i p u d ( e y e ( 3 ) ) = [ 0 0 1 0 1 0 1 0 0 ]
绘制数据:
t=[0:0.01:0.98];#生成一个数据集
y_1=sin(2*pi*4*t);
plot(t,y_1);#正弦函数
y_2=cos(2*pi*4*t);
plot(t,y_2);#余弦函数
plot(t,y_1);
hold on;#将新图跟旧图画在一起
plot(t,y_2,'r');#'r'表示颜色
#设置坐标名
xlabel('time');
ylabel('value');
#设置曲线名
legend('sin','cos');
#设置图片名
title('myplot');
#保存图片
print -dpng 'myplot.png'
#绘制两幅图
figure(1);
plot(t,y_1);
figure(2);
plot(t,y_2);
#将图片分为1*2的格子,用第一个绘图
subplot(1,2,1);
plot(t,y_2);
#设置x,y轴的起始刻度
axis([0.5 1 -1 1]);
A=magic(5);
#将A呈现为一个不同颜色的拼图
imagesc(A);
控制语句:
for f o r 语句:
for i=1:10,
V(i)=2^i;
end;
while w h i l e 语句:
i=1;
while i<=5,
V(i)=100;
i=i+1;
end;
while+if w h i l e + i f 语句:
i=1;
while true,
v(i)=999;
i=i+1;
if i==6,
break;
end;
end;
函数定义:
function y=squareThisNumber(x)
y=x^2;
上述代码存放在 squareThisNumber.m s q u a r e T h i s N u m b e r . m 文件中,调用时,切换到 squareThisNumber.m s q u a r e T h i s N u m b e r . m 所在路径,执行 squareThisNumber(5) s q u a r e T h i s N u m b e r ( 5 ) 即可。
将 squareThisNumber.m s q u a r e T h i s N u m b e r . m 路径通过 addpath(′XXX′) a d d p a t h ( ′ X X X ′ ) 添加,则无需切换路径,也可执行。
函数返回多个值:
function [y_1,y_2]=SquareAndCubeThisNumber(x)
y_1=x^2;
y_2=x^3;