Matlab作业笔记

1.冒号法生成线性等距向量:记忆点是从小到大写

如:A=(1:2:17)

  • matlab中各种括号:
  • 小括号(),用于引用数组的元素
  • 中括号[],用于储存矩阵和向量
  • 大括号{},用于cell数组(元胞数组,相当于C语言的共用体)的分配或引用。

2.求解线性方程组

  • 转置用撇号'即可
  • inv(A):求逆矩阵
  • det(A):求行列式
  • \左除号表示将前一哥矩阵求逆后乘后面的,理论上有:A\B=inv(A)*B
    • Tips:根据matlab的提示,A\B的精度将高于使用inv函数
    • 记忆:除号看作棍子|除号往哪边倒,就把谁打成逆矩阵

3.绘制二维曲线图

  • 坐标轴上下限
    • ylim([-2,2]):这里需要注意的是,这一函数的输入参数是一个1*2矩阵,需要使用中括号[]来创建
  • 坐标轴名
    • xlable('x');ylable('sin x')
  • 图名
    • title('二维点阵图')命令设置图的名称title
  • 图例
    • legend('sin(x)','cos(x)')命令来添加图注,按照绘制先后顺序添加
  • 添加网格
    • grid on;
  • 注释
    • text(x,cos(s),'cos x')
  • 调整曲线色彩、线型、数据点型
    • 色彩:rgbcmykw
    • 线型:'-' '--' ':' '-.'
    • 点型:如下
name 说明 标记符 说明 颜色 说明
- 实线(默认) + 加号符 r 红色
-- 双划线 o 空心圆 g 绿色
: 虚线 * 星号 b 蓝色
-. 点划线 . 实心圆 c 青绿色
x 叉号符 m 洋红色
s 正方形 y 黄色
d 菱形 k 黑色
^ 上三角形 w 白色
v 下三角形
> 右三角形
< 左三角形
p 五角星
h 六边形

(1) 使用figure(n)来打开多个窗口来绘制图:

1
2
3
4
figure(1)
plot……
figure(2)
plot……
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
clear;clc;
x=[0:10:360]*2*pi/360;
figure
plot(x,sin(x),'r+-');
xlim([0,2*pi]);
ylim([-2,2]);
xlabel('x');ylabel('sin(x)')
legend('sin(x)')
grid on;

figure
plot(x,cos(x),'g*--');
xlim([0,2*pi]);
ylim([-2,2]);
xlabel('x');ylabel('cos(x)')
legend('cos(x)')
grid on;

(2)subplot(2,2,1)函数生成2*2的子图,并在第一个上绘制

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
clear;clc;
x=[0:10:360]*2*pi/360;
figure
subplot(2,2,1);
plot(x,sin(x),'r+-');
xlim([0,2*pi]);
ylim([-2,2]);
hold on
xlabel('x');ylabel('sin(x)')
legend('sin(x)')
grid on;

subplot(2,2,2);
plot(x,cos(x),'g*--');
xlim([0,2*pi]);
ylim([-2,2]);
hold on
xlabel('x');ylabel('cos(x)')
legend('cos(x)')
grid on;

(3)一个窗口中

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
clear;clc;
x=[0:10:360]*2*pi/360;
figure
plot(x,sin(x),'r+-');
hold on
plot(x,cos(x),'g*--');
hold on
plot(x,tan(x),'bx:');
hold on
plot(x,cot(x),'ms-.');
hold on
xlim([0,2*pi]);
ylim([-2,2]);
xlabel('x');ylabel('y')
title('二维曲线点图')
legend('sin(x)','cos(x)','tan(x)','cot(x)')
grid on

4.绘制三维曲面

关键点

  1. 元素乘幂使用.^
  2. 元素乘积使用.*
  3. 参考peaks(49)函数的输出

  • mesh(X,Y,Z,C)
    • 绘制网格图
  • surf(X,Y,Z)
    • 绘制着色曲面图
  • 使用peaks(49)函数就可以找到这个表达式,原来这是个demo用的表达式,稍微更改了,将x^2增加了系数0.5,改变了图像的一点性质

提示:

  • 自然对数的底数e的几次方可以用exp(‘expression’)来表示,因为exp函数代表了e的几次方
  • 矩阵奇异表示此时矩阵的元素可能达到了无穷大(inf无穷大)或0/0(NaN非数)
    • 可以打开查看矩阵的元素情况
  • 标量乘幂需要用.^来表示,因为
    • ^表示矩阵乘幂
    • .^表示矩阵中单个元素乘幂
      • 这叫数组运算
  • 绘图中的“元素之间”乘法使用.*

    • *表示矩阵乘法
    • .*表示矩阵元素对应相乘
      • 注:matlab中的latex函数并不能区分这两种符号
  • 提示圆括号或方括号不对称,可能是因为乘号*没打出来

  • peaks函数输出: $$ 3\, {e}^{ - {\left(y + 1\right)}^2 - x^2}\, {\left(x - 1\right)}^2 - \frac{{e}^{ - {\left(x + 1\right)}^2 - y^2}}{3} + {e}^{ - x^2 - y^2}\, \left(10\, x^3 - 2\, x + 10\, y^5\right) $$


5.编写函数

  1. 文件浏览器空白处右键->新建->函数可以创建一个空白的自定义函数
  2. 可以发现,它的后缀与脚本一样,都是.m,只是添加了函数头,便于编写
  3. 前面方括号里是返回的参数,后面圆括号里输入参数,它们都不需要说明类型
  4. 进行运算编写即可,不需要像C一样使用return语句
1
2
3
4
5
function [ output_args ] = Untitled( input_args )
%UNTITLED 此处显示有关此函数的摘要
%   此处显示详细说明

end
  • 设置缺省值,使得函数可以直接运行
1
2
3
if nargin == 0
    r=1;%设置半径缺省值
end

REFERENCE 参考文献

APPENDIX 附录

All the coding in this document is Available on the Github.

TTECH SUPPORT 技术支持

Edit at 2020 March 05