Matlab基本特性&矩阵与向量&数值函数与符号函数&Matlab绘图&Matlab编程&M函数文件

Posted 从零开始的智障生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab基本特性&矩阵与向量&数值函数与符号函数&Matlab绘图&Matlab编程&M函数文件相关的知识,希望对你有一定的参考价值。

1. Matlab基本特性

我们经常接触到的matlab窗口一般只有三个:
命令窗口:用于输入命令和数据;
编辑窗口:用于建立和编辑M文件;
图形窗口:用于显示图形。
这里记录一些初始属性:



2. 矩阵与向量

3. 数值函数与符号函数


在这里插入图片描述
在这里插入图片描述
建立数值函数 inline 命令,在新版中已经不支持变量字符加引号,不过旧版的却可以,如旧版的 g = i n l i n e ( ′ x y − 3 ′ , ′ x ′ , ′ y ′ ) g=inline('x^y-3','x','y') g=inline(xy3,x,y);新版中用 f = i n l i n e ( ′ x y − 3 ′ , x , y ) f=inline('x^y-3',x,y) f=inline(xy3,x,y),下面记录下新版的使用方法,不过不久之后也会在新版本取消inline的使用。
在这里插入图片描述

但是,由于版本的更新,solve的更新从2019版开始,已经不支持字符向量输入,取而代之的是syms声明变量,,并且例如solve('2x==1’,‘x’)被solve(2x==1,x)替换。但此前面比较重要的是理解这种选择参数的方式,以及结果输出方式,都与symvar这个内置函数有关。所以先看symvar,然后再看solve函数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4. Matlab 绘图

在这里插入图片描述


5. Matlab 编程

Matlab编程,和C语言等编程语言一样,可以将其命令行写入一个文件中,C语言后缀是.cpp,Matlab后缀是.m,在这其中,同样可以进行类似C语言的代码编写。

5.1 M文件的建立、打开与运行

  1. 建立新的 M 文件 左上角加号的新建,就有一个脚本(Ctrl+N),会发现其默认的文件名以.m为后缀
    图片名称
  2. 打开已有的 M 文件
    方法1:从 MATLAB 命令窗口或编辑窗口的 file 菜单中左键点击open,在出现的对话框中选中需要打开的M文件,左键点击;
    方法2:在 MATLAB 命令窗口中键入 [edit filename],则可打开指定的M文件。 注意:MATLAB默认只会在 bin目录下查找文件 /MATLAB/bin/filename。
    图片名称
  3. 运行M 文件
    方式1:对正在编辑的 M 文件,可以点击工具栏上的 Debug 或 Run,即可运行当前程序;
    方式2:或在命令行中输入 M 文件名(注意这个文件要在bin目录下),然后按Enter 键。

5.2 MATLAB 程序的基本结构

%*******Matlab 命令行文件*******
format compact
%一、输入方式
%1.程序中直接赋值
x=2;        %输入单个值
a=[1,2,3;4,5,6;7,8,9];%输入矩阵(a为3阶方阵)
s='Any string!';        %输入字符串
%2.程序运行时赋值
x=input('x=');
y=input('Please input y=');%提示语句输入
%二、输出方式
%1.程序直接输出
x%变量后无分号;变量直接输出
disp([a])%a可以是标量、向量、矩阵
%2.格式控制输出
fprintf('x=%.3f y=%.0f\\n',x,y) %按指定格式输出
%三、有限次循环(for-end)结构
% for n=n1:step:n2(循环变量n=起始值:步长:结束值)
%       commands-1
% end
% commands-2
%试计算1+3+5+...+2*100-1
clear;clc;%清理内存变量,并清流命令窗口
n=100;%赋值给定奇数的个数
s=0;%设定存放和的变量s并赋初值0
for i=1:n
    s=s+(2*i-1);
    fprintf('i=%.0f******s=%.0f\\n',i,s);%逐行显示出累加过程
end
%四、条件循环(while-end)结构
% while conditions
%       commands-1;
% end
% commands-2;
clear;clc;
i=1;
s=0;
while i<=10
    s=s+2*i-1;
    fprintf('i=%.0f******s=%.0f\\n',i,s);%逐行显示出累加过程
    i=i+1;
end
%五、单向选择判断(if-end)结构
% if condition
%     commands-1;
% end
% commands-2;
% 计算分段函数的值
% 给定一组数,找到其中最大的数
a=input('please input a couple of number x(用中括号括起来):')%由键盘输入给定的一组数
n=length(a);
M=a(1);
for i=2:n
    if a(i)>M
        M=a(i);k=i;
    end
end
M
%六、多想选择判断(if-elseif-else-end)
% if condition1
%   commands-1;
% elseif condition2
%   commands-2;
% else
%   commands-3;
% end
% commands-4;

6 Matlab 函数文件与流程控制

%*********Matlab 函数文件*********
%一、函数文件的基本结构
% function [输出参数表]=函数名(输出参数表)
% 编写函数问价,求半径为r的球的体积和表面积
function [V,S]=fsphere(r)%r为球半径,V为求体积,S为球面积
    V=(4*pi*r^3)/3;
    S=4*pi*r^2;
% 保存文件为:fsphere.m,文件的名字要与函数名相同,其次文件的要放在bin目录下

%二、函数文件的调用
%[输出参数表]=函数名(输入参数表)
%调用的时候只要用两个参数:[v,s]=fsphere(4)

%三、Matlab 程序流程控制
% break;跳出循环过程
% return;对普通程序是提前结束运行,对于函数命令则是结束该函数程序,并返回到调用函数处
% pause:使程序运行暂停,等待用户按任意按键继续。pause语句在测试或查看中间结果时经常使用
%   直接使用:程序执行此语句时,暂停执行程序,等待用户从键盘按任意键继续执行
%   使用按时间暂停时间:pause(n)(其中n为暂停时间秒数),通常可用来慢放程序,可实现动画效果
% 动态显示数列极限 an=(1+1/n)^n -> e(n->inf)的毕竟过程
clear;clc;
hold on;
axis([0,150,2,2.8]);
grid;
for n=2:2:150
    an=(1+1/n)^n;
    plot(n,an,'r .','markersize',15);
    pause(0.1);
    fprintf('n=%d*******an=%.4f\\n',n,an);
end

会有一个动画的效果:
图片名称

以上是关于Matlab基本特性&矩阵与向量&数值函数与符号函数&Matlab绘图&Matlab编程&M函数文件的主要内容,如果未能解决你的问题,请参考以下文章

matlab 基本用法

我可以在 matlab 矩阵的每一行和没有循环的向量之间找到共同值吗?

实验1 MATLAB 基本特性与基本运算练习题

实验1 MATLAB 基本特性与基本运算练习题

基本矩阵运算-Matlab

Matlab-基本操作与矩阵输入