# MATLAB笔记

MATLAB笔记

未分类

  • 化简函数simplesimplify
  • doc 打开帮助文档
help xxx   %查找xxx的帮助文档

format rat   %format控制输出格式,rat分数输出
  • 脚本加分号表示一条语句,不加分号表示在命令行下执行这条语句(会有相应输出)
  • 矩阵每行元素用;隔开,同行元素使用,

基本运算符

在这里插入图片描述

function自定义函数

  • function用来定义函数,一般一个函数放在一个.m文件里。举个简单的例子建立一个myfunction.m,然后在文件中写。
    function y=myfunction(a,b)
    其中a,b是输入函数的参数,y是函数返回的值。
    当需要返回多个值时,可以将y看作一个数组,或者直接将函数的开头写成如function [x,y]=myfunction(x,y)的形式。
    然后就是定义函数的内容,通俗的说就是怎样由输入参数a,b得到返回值y。比如最简单的y=a+b。
  • syms x,syms f(x);定义符号变量,前者定义变量x,后者定义函数表达式(相当于同时定义自变量和因变量)。未经过定义就使用会报错
% 简单的符号函数画图
sysm x   %定义变量
f=x^2    %定义符号函数表达式
ezplot(y)    %符号函数画图

%%
function [y1,...,yN] = myfun(x1,...,xM) 声明名为 myfun 的函数,该函数接受输入 x1,...,xM 并返回输出 y1,...,yN。

%%
总结一下,将下面的代码
function y=myfunction(a,b)
y=a+b;
保存为一个m文件myfunction.m,调用方式如下。
num=myfunction(3,4);
这样就可以由函数中的y=a+b得到num的值是3+4=7

end用法

  • end 终止 for、while、switch、try、if 和 parfor 语句。若没有 end 语句,则 for、while、switch、try、if 和 parfor 会等待进一步输入。每个 end 与前面最近的未配对 for、while、switch、try、if 或 parfor 进行配对,用于界定其范围
    end 还会标记函数的终止

注释

% 为单行注释

%{
	code............
%}    多行注释,其中注释符必须另起一行

输出

  • disp(x)直接输出x
  • fprintf('x=%d ',x)自定义输出格式
  • x不加分号(无论在脚本还是命令行)

生成矩阵

  • a = magic ( 3 ) 产生3 * 3 的魔方矩阵,它的每行,每列及对角线的数之和相等,该和的值为1+2+3+..…..+n^2的和再除以n,n必须为大于或等于3的整数。
  • a = ones(n)/ones(n,m); %生成 n * n 的全1 矩阵,,生成全1 的 n * m 矩阵,ones可以替换成zeros 生成全0矩阵,
  • 生成全 x 的矩阵: 通过先生成全1的矩阵,a = a *3,生成了全3 的矩阵
  • rand函数则用于产生由在(0, 1)之间均匀分布的随机数组成的数组 ,如rand(4)则是产生一个1行4列的数组,rand(2,3)则是2行3列矩阵,rand(2,3,4)则是四个2行3列的矩阵
  • whos查看工作空间变量
    在这里插入图片描述
  • save,load,clear 命令。save用于保存数据到 mat文件中,load用于加载mat文件,clear则是清除当前工作区变量。
    在这里插入图片描述

画图专题

  • 同时画多个图用于对比处理
  • 同时画多个图用于对比处理
>> plot(x,y,'.-')%'.-'表示直接用点表示点,'o-'表示空心圆表示,'*-'表示用*表示


>> x= -100:100;   %x从-100到100;,每隔1取一个点用于作图
>> y = x .*x;
>> plot(x,y) ;     % 作图函数
>> x= -3: 0.1: 3;   % 设置步长为0.1,即每隔0.1取一个点用于作图

>> axis equal;   % 设置轴的单位长度一致
>> grid on;   %设置显示网格
>> hold on; %设置保留之前的图像,MATLAB默认新图像覆盖旧图像


>> title ('y vs x');  %在图的顶部添加标题
>> x(y)label('sss');  %为x(y)轴添加标签

同一窗口画多个图像:
subplot(m,n,p);plot(x1,y1);p为先从左往右再从上往下数第p个
subplot(2,2,【3,4】) 3号4号位置画一个图

三维图:
曲线plot3(x,y,z);
彩色曲面surf(x,y,z);彩色网线图mesh(x,y,z);
生成网格[X,y]=meshgrid(x,y);
 
>> x = 3 : 5;  %3 4 5
>> y = 6 : 9;  %6 7 8 9
>> [X,y]=meshgrid(x,y);
>> z = x .* 2 + y .* 2;
>> surf(x,y,z);

生成的网格:
(3,6),(4,6),(5,6);
(3,7),(4,7),(5,7);
(3,8),(4,8),(5,8);
(3,9),(4,9),(5,9);
也就是 x 和 y 所围成的正方形中的所有的点

执行meshgrid函数之后
x , y 从一维矩阵变成 3 * 4 的矩阵
x = 
3 4 5
3 4 5
3 4 5
3 4 5

y =
6 6 6
7 7 7
8 8 8
9 9 9
原文地址:https://www.cnblogs.com/sstealer/p/11110755.html