Octave语法
基本操作
1.基本运算+ - * / ^
2.且& 或|
3.变量赋值
A=1
A=1:0.1:1.5
A =
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000
%%从1到1.5每隔0.1显示一个数
A=1:6
A =
1 2 3 4 5 6
4.建立矩阵
A=[1 0 0;0 1 0;0 0 1]
A =
1 0 0
0 1 0
0 0 1
%%三元单位阵 一个 ; 隔绝一行
一些快速建立矩阵的方法
A=eye(3)
A =
Diagonal Matrix
1 0 0
0 1 0
0 0 1
A=[1:5]
A =
1 2 3 4 5
A=3*ones(3,4)
A =
3 3 3 3
3 3 3 3
3 3 3 3
A=zeros(3,4)
A =
0 0 0 0
0 0 0 0
0 0 0 0
生成随机数矩阵
A=magic(3)
A =
8 1 6
3 5 7
4 9 2
A=rand(3,4)
A =
0.2641 0.2714 0.6350 0.4451
0.3665 0.1042 0.9141 0.3593
0.7243 0.8550 0.1391 0.3467
5.求矩阵维数
A=rand(3,4)
se=size(A)
se =
3 4
se=size(A,1)
se = 3
se=size(A,2)
se = 4
length(A)
ans = 4
矩阵合并
A =
1 2 3
4 2 6
7 2 9
%%加一列
A=[A,[1;0;0]]
A =
1 2 3 1
4 2 6 0
7 2 9 0
A=[1 1;2 2;3 3]
A =
1 1
2 2
3 3
B=[4 4;5 5;6 6]
B =
4 4
5 5
6 6
%%左右合并
C=[A B]
C =
1 1 4 4
2 2 5 5
3 3 6 6
%%上下合并
C=[A;B]
C =
1 1
2 2
3 3
4 4
5 5
6 6
矩阵运算
A*C %矩阵乘法
A‘ %计算A的转置
flipud(eye(3)) %flipud()矩阵垂直翻转
pinv(A) %矩阵求逆(其实计算的是伪逆)
max(A) %返回矩阵A每一列的最大值
max(max(A)) %求矩阵A最大值
[r,c]=find(A>=7) %r行c列(索引)
A.*B %对应元素相乘
A.^2 %对应元素求平方
max(A,[],1) %从A的第一维取第一维(列)最大的
max(A,[],2) %从第二位(行)取最大的
1./v %对应元素求倒数
log(v) %求log
exp(v) %以e为底,以v中元素为指数的幂运算
abs(v) %所有元素的绝对值
-v %相当于求 -1*v
v+ones(length(v),1) %技巧性:给每个元素加1
val=max(v) %返回向量v最大元素
[val,ind]=max(v) %返回向量v最大元素及最大元素的索引
a<3 %a中小于3.则返回1,返回0为否
find(a<3) %找到小于3的值返回索引号
sum(a) %a中所有元素求和
prod(a) %所有元素乘积
floor(a) %向下取整
ceil(a) %向上取整
6.索引查找元素
A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
%%获取第一行第二列元素
A(1,2)
ans = 2
%%获取第一行和第三行所有元素
A([1,3],:)
ans =
1 2 3
7 8 9
%%获取第一列所有元素
A(:,1)
ans =
1
4
7
%%获取第二行所有元素
A(2,:)
ans =
4 5 6
%%将第二列所有元素改为2
A(:,2)=[2;2;2]
A =
1 2 3
4 2 6
7 2 9
7.读取使用外部数据
data = load('ex1data1.txt')
%%当读取后的data数据是一维列向量时
ta=data(1:10)%获取data前10个值
%%当读取后的data数据是n*2矩阵时
tb=data(:,1)%%获取所有第一列数据
tb=data(:,2)%%获取所有第二列数据
函数的定义和使用
1.首先需要创建一个以函数名命名的后缀为.m的文件。如:warmUpExercise.m
2.写入函数定义:
function A = warmUpExercise(B)
A=B+2
function [A,B] = warmUpExercise(C)
A=C+2
B=C+1
3.调用函数
法一:跳转到函数所在目录位置
cd 'C:/Users/14486/Desktop'
输入
warmUpExercise(1)
法二:添加查找路径
addpath('C:/Users/14486/Desktop')
cd 'C:\'
输入
warmUpExercise(1)
读入外部数据
data = load('ex1data1.txt');
其他
fprintf('Running warmUpExercise ... \n');
%% Initialization %%为注释
clear ; close all; clc
pause; %%暂停,等待键入
clear%%清除工作空间所有变量

浙公网安备 33010602011771号