MATLAB学习总结

一些常用的指令和实用的操作:

  • clear all :移除之前的变量
  • close all:关闭所有图形
  • 在语句的最后加上“;”:避免该语句的输出
  • 使用“…”: 使脚本更加好阅读
    例如:
    在这里插入图片描述
  • 按住“Ctrl + C”:中断正在运行的脚本的运行

1.基本操作和矩阵输入

1.1基本操作

  • ans: matlab中的临时变量,当没有定义变量只进行运算时,会将结果存到ans中(不需要指明存到ans中)。
  • 变量: 不需要定义类型,为变量赋值时,只能使用“变量名 = 值”来进行赋值,定义变量名时,变量名中可以包含数字,但是数字不能放在第一位。
  • 特别的变量名和常量:
    • ans
    • i,j
    • Inf:无穷
    • eps
    • NaN:不是一个数字
    • pi:π
      注:这些变量虽然你仍然能够直接赋值,但是在你赋值之后,他们将失去原来的作用,会只是一个被赋了值的变量。
      例如:
	cos = 'This string.';
	cos(8)

输出结果为:r
如果想重新使用cos函数,则要先清除:

clear cos//清除操作
cos(8)

注:清除时需要注意,尽量不直接执行‘clear’(后面不跟变量名),会直接清除所有赋值。

  • 数据类型展示转换
    • short:短整型
    • long:长整型
    • shortE:短整型+科学符号
    • longE:长整型+科学符号
    • bank:保留两位有效数字
    • hex:十六进制
    • rat:有理数
format long

使用该形式进行类型展示转换。

  • 几个方法:
    • clc:清除命令界面展示
    • clear:移除工作空间中的变量
    • who:显示工作空间中的变量
    • whos:显示工作空间中变量的信息

1.2矩阵输入

  • 行向量:a = [1 2 3 4] (中间的空格不能省)
  • 列向量:b = [1;2;3;4]
    对于一个矩阵而言:在这里插入图片描述
    可以输入为:A = [1 21 6;5 17 9;31 2 7]
    示例:
    • A(8):得到矩阵中第八个数(从上到下,从左到右),结果为9
    • A([1 3 5]): 得到矩阵的第1,第3,第5三个数组成的矩阵
    • A([1 3; 1 3]):得到矩阵的第1,第3个作为矩阵第一行,矩阵的第1,第3个作为矩阵第二行
    • A(3,2):得到第三行第二列的数
    • A([1 3],[1 3]):得到第一行第三行和第一列第三列的交集的数组成的矩阵
  • 等差级数的创立:
    • A = 1:100 :建立一个矩阵,从1开始,步长为1,上限为100的矩阵
    • A = 1:2:5 :建立一个矩阵,从1开始,步长为2,上限为5的矩阵
  • 将位置上的数据置空: A (3,:) = [] :将第三行上的数置空。
  • 矩阵跟向量的四维运算:
    例子:
    在这里插入图片描述
    • x1 = A+a:矩阵上的数都加上2
    • x2 = A/a: 矩阵上的数都除以2
    • x3 = A./a:矩阵上的数都除以2
    • x4 = A^a:A*A,即A的幂级数(a为多少次幂)
    • x5 = A.^a:矩阵上的每一个数取a次方
    • C = A’:A的转置矩阵
    • y1 = A+B:矩阵相加
    • y2 = A*B:矩阵相乘
    • y3 = A.*B:矩阵各对应位置上的数相乘
    • y4 = A/B:A乘以B的逆矩阵
    • y5 = A./B:矩阵各对应位置上的数相除
  • 特别的矩阵:
    • eye(n):n*n维的单位矩阵
    • zeros(n1,n2):n1*n2的数值全为0的矩阵
    • ones(n1,n2):n1*n2的数值全为1的矩阵
    • diag():对角矩阵
  • 一些矩阵相关的方法:
    • max(A):矩阵中每一列中最大的值
    • max(max(A)):矩阵中最大的值
    • min(A):矩阵中每一列中最小的值
    • sum(A):矩阵中每一列的和
    • mean(A):矩阵中所有数字的平均
    • sort(A):将每一列按从小到大排序
    • sortrows(A):将每个行按照第一列中的顺序进行排序
    • size(A):矩阵的行数和列数
    • length(A):矩阵的长度
    • find(A):寻找矩阵中等于A的位置

2.结构化程式和自定义函数

在matlab中%用来注释,%%表示将代码划成一个区块。

  • 逻辑操作
    在这里插入图片描述

2.1 if elseif else

模板:

	if condition1
		statement1
	elseif condition2
		statement2
	end

注:“elseif”和“else”是可选择的。
示例:

a = 3;
if rem(a,2) == 0  %余数
	disp('a is even')
else
	disp('a is odd')
end

2.2 switch

模板:

switch expression
case value1
	statement1
case value2
	statement2
.
.
otherwise
	statement
end

示例:

input_num = 1;
switch input_num
case -1
	disp('negative 1');
case 0
	disp('zero');
case 1
	disp('positive 1');
otherwise
	disp('other value');
end

2.3 while

模板:

while expression
	statement
end

示例:

n = 1;
while prod(1:n) < 1e100 %1:n表示一个1100 的向量,prod表示向量中的每个数相乘,1e100表示科学计数法,表示1乘上10100次方。
	n = n+1;
end

2.4 for

模板:

for variable = start:increment:end %start表示起始,end表示结束,increment表示步长
	commands
end

示例:

%%
for n=1:10
	a(n) = 2^n
end
disp(a)

%%
for n=1:2:10
	a(n) = 2^n
end

注:如果你想接着使用a这个变量并给它赋值的话,必须要先清理下a这个变量,否则这个变量不会改变。

2.5 break

功能:中断for或while循环的进程
示例:

x = 2;k = 0;error = inf;
error_threshold = 1e-32;
while error > error_threshold
	if k>100
		break
	end
	x = x-sin(x)/cos(x);
	error = abs(x - pi);
	k = k+1;
end

该代码中的break条件达到后会跳出while循环。

2.6 函数

在这里插入图片描述
多个输入单个输出示例:

function x = freebody(x0,v0,t)
x = x0 + v0.*t + 1/2*9.8*t.*t %这里的点乘不能换为乘,如果想进行几个一起操作会报错

多个输入多个输出示例:

function [a,F] = acc(v2,v1,t2,t1,m)
a = (v2-v1)./(t2 - t1);
F = m.*a;

函数默认变量:

  • inputname:函数输入的变量名
  • mfilename:正在运行中的函数的文件名
  • nargin:函数输入参数的数量
  • nargout:函数输出参数的数量
  • varargin:可变长度输入参数列表
  • varargout:可变长度输出参数列表
    示例:
function [volume] = pillar(Do,Di,height)
if nargin ==2,
	height = 1;
end
volume = abs(Do.^2 - Di.^2).*height*pi/4
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值