x = 0:pi/6:pi%第二个数值pi/6指的是步长 y = sin(x) z = asin(y) %即为x x = [-49-1625] y = abs(x) z = sqrt(y) x = [-1.6-0.21.20.6]; y = ceil(x) %向上取整 z = floor(x) %向下取整 g = fix(x) %向着坐标原点取整 f = round(x) %四舍五入
基本语句的一个举例
1 2 3 4 5 6
x = 0; fori = 1:10 ifmod(i , 2) x = x + i; end end%求1 - 10内的奇数和
矩阵的基本运算
一些常用的操作
1 2 3 4 5 6 7 8 9
x = [123; 456; 789] [m, n] = find(x == 8) %返回行标和列标 ind = find(x == 8) %返回序号 size(x) %矩阵的大小 x = reshape(x,1,9) %重排矩阵 x = [123; 123; 123] x = unique(x) %删除相同元素 实现矩阵压缩 S = rand(10,1) %rand产生0-1的随机矩阵 S = randn(1, 10) %randn产生均值为0,方差为1的随机矩阵
初始化矩阵
1 2 3 4 5 6 7 8 9
x = [123; 456; 789] %分号代表换行 或者是: y = [123 456] x = [0:2] % 这个矩阵的初始元素是0 末尾元素是2 步长默认为1 x = [0:0.5:2] %步长为0.5 x = linspace(0 ,2, 5) %初始元素为0,末尾元素为2,总共5个元素,这个可以与前边的方式混用 x = zeros(2,3) %初始化一个2行3列的零矩阵 x = ones(2,3) %初始化2行3列的元素全为1的矩阵 x = eye(2) %初始化一个2行2列的单位矩阵
矩阵的基本运算
1 2 3 4 5 6 7 8 9 10 11
A = [123; 456; 789]; %末尾有分号代表系统不必输出该矩阵。 B = [135; 690; 246]; C = A + B D = A - B E = A * B %矩阵A乘以B(与Python不一样) F = A.* B %矩阵A中的元素与对应位置上的B中的元素相乘,只是对应相乘 G = A / B %实际为A * B的逆 H = A./ B I = A ^ 2%矩阵相乘 = A * A J = A.^ 2%只是对应的元素自身进行平方 A = A' %矩阵的转置
矩阵或者数组行列块的取值与赋值
1 2 3 4 5 6 7 8
A = [123; 456; 789]; x = A(1, 3) %取出第一行第三列的元素(没有第0行和第0列,与Python不同) x = A(4) %取出第4个元素,注意的是,matlab是按列存的。 y = A(2, :) %取出第二行的元素。 z = A(1:2, 1:3) A(1,3)= 0 A(2 ,:)= [654] A(1:2,1:2) = [-1-2 ; -3-4]
比较和逻辑运算
1 2 3 4 5 6 7 8 9
A = [123 456] B = [456 789] eq = (A == B) %返回值为1或0 xy = (A < 5) & (B > 7) %且 xy = (A < 5) | (B > 7) %或 A(A < 3)= 0 A(2, :) = 0
数组操作函数: flipud fliplr rot90
1 2 3 4
A = [123; 456; 789]; B = flipud(A) %up down 上下交换 C = fliplr(A) %left right 左右交换 D = rot90(A) %逆转90度 不是转置
t = 0:pi/50:10*pi; %10π就是转了5圈 x = sin(t); y = cos(t); z = t; plot3(x,y,z) %三维图像用plot3 title('Helix') xlabel('sin t') ylabel('cos t') zlabel('t') grid on %可以直接绘制出螺旋图