matlab从入门到秃头

2024-04-10 02:58
文章标签 matlab 入门 秃头

本文主要是介绍matlab从入门到秃头,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Matlab从入门到秃头

基本知识

变量命名规则

  • 变量名区分大小写
  • 变量名长度不超过63位
  • 变量名以字母开头,可以由字母、数字、下划线组成但不能使用标点
  • 变量名应当简洁明了,通过变量名可以直观看出变量所表示的物理意义

常见命令

清空环境变量及命令

  • clear all 清除workspace所有变量
  • clc 清除command window所有命令

注释

注释整行:%%+注释内容

注释文字:%+注释内容

数据类型

数字

指基本数字的运算,加减乘除

1+2
1-2
3*8
8/2

字符与字符串

  • 字符串

    %% 字符与字符串
    s='a'
    abs(s)%求字符的ascii码
    char(97)%把ascii码转化成字符
    num2str(65)%把数字转化为字符串
    str='hello world'
    length(str) % 计算长度
    doc num2str
    

矩阵

%%
% 矩阵
A=[1 2 3;4 5 6;3 2 7;]% 构造一个矩阵,行与行之间用分号隔开
B=A'                       % B矩阵是A矩阵的转秩
C=A(:)                     % C矩阵是A矩阵把每一列依次拼起来
D=inv(A)                   % D矩阵是A矩阵的逆矩阵
A*D                        % 求A矩阵和D矩阵的积E=zeros(10,5,3)            %创造10行5列全是0的三维矩阵
E(:,:,1)=rand(10,5)          % 生成10行5列均匀分布在(0,1)之间的随机数
E(:,:,2)=randi([1,6],10,5)   % 生成10行5列在开区间(1,6)之间的随机矩阵
E(:,:,3)=randn(10,5)         % 生成10行5列服从标准正态分布的伪随机数

元胞数组

%%
% 元胞数组
A=cell(1,5)% 建立1行5列的元胞数组,其中每个子数组的数据类型可以不一样
A{2}=eye(3)% A{2}为一个3阶的单位矩阵,注意,下标从1开始
B=A{2}
A{5}=magic(5)%A{5}为一个5阶的幻方(也就是每行每列以及对角线的和相等)
C=A{5}

结构体

  • 其实就是键值对

    %%
    % 结构体
    books=struct('name',{{'hello world','data machine'}},'price',[30,40])
    books.name          %{'hello world'  'data machine'}
    books.name(1)       %取出的是cell   {'hello world'}
    books.name{1}       %取出来的是cell里面的值 'hello world'
    

四则运算

矩阵的定义和构造

%%
% 矩阵的定义和构造
A=[1 2 3; 5 8 5 ;4 6 7] %分号换行
B=1:2:9                 %表示从1开始,每次增加2,最大值为9
C=repmat(B,3,2)         %把B矩阵重复3行2列
D=ones(2,4)             %生成2行4列全为1的矩阵

矩阵的四则运算

%%
% 矩阵的四则运算
A=[1 2 3 4;5 6 7 8]
B=[1 1 2 2;2 2 1 1]
C=A+B           % 两个矩阵相加
D=A-B           % 两个矩阵相等
E=A*B'          % A和B的转秩序相乘
F=A.*B          % A和B的对应项相乘
G=A/B           %A*B的逆
H=A./B          %对应项相除

矩阵的下标

%%
% 矩阵的下标
A=magic(5)
B=A(2,3)    %取第二行,第三列
C=A(3,:)     %取第三行
D=A(:,4)    %取第四列
[m,n]=find(A>20)%找A中大于20的序号值,m存储行,n存储列

流程控制

for循环

for 循环变量=初值:步长:终值循环语句1循环语句2
end

求12+22+32+42+5^2的和

%%
sum=0;
for n=1:5sum=sum+n^2;
end
sum

99乘法表

%%九九乘法表
for i =1:9for j=1:9a(i,j)=i*jend
end

while循环

while 条件表达式执行语句1执行语句2执行语句n
end

求12+22+32+42+5^2的和

n=1;
s=0;
while n <=5s=s+n*n;n=n+1;
end
s

if else end

%%
a=100;
b=20;
c=0;
if a>bc=1;
elsec=2;
end
c

switch语句

switch 表达式case数值或字符串1语句体1;case数值或字符串2语句体2;otherwise语句体n
end
n=2;
res=0;
switch(n)case 0res=-1;case 1res=0;otherwiseres=1;
end
res

绘图

二维平面绘图

demo1

x=0:0.01:2*pi;  %定义x,范围为0到2pai,步长为0.01
y=sin(x);       %定义对应的y为sin(x)
figure          %建立一个幕布
plot(x,y)       %绘制当前的二维的平面的图
title('y=sin(x)')%设置标题
xlabel('x')      %x轴上标的标签
ylabel('sin(x)') %y轴上标的标签
xlim([0 2*pi])   %显示的范围是x从0到2pai

demo2

%%
%二维平面绘图
x=0:0.01:20;
y1=100*exp(-0.05*x).*sin(x);    %exp返回指数 ex
y2=0.8*exp(-0.5*x).*sin(10*x);
figure
plotyy(x,y1,x,y2,'plot')
[Ax,H1,H2]=plotyy(x,y1,x,y2,'plot');%两个y共享一个x,调用函数plot来绘制图像
set(get(Ax(1),'Ylabel'),'String','Slow Decay'); %第一个y轴的名字叫Slow Decay
set(get(Ax(2),'Ylabel'),'String','Fast Decay'); %第二个y轴的名字叫Fast Decay
xlabel('Time(\musec)');
title('multiple decay rates');
set(H1,'LineStyle','--');% 把h1设置为虚线
set(H2,'LineStyle',':');%把h2设置为点线

三维绘图

%三维平面绘图
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t);% xyz轴对应的点分别取sin(t),cos(t),t
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on  %在原图之中加上网格线
axis square%让各个方向变成正方形,起到限制作用

完结撒花感谢陪伴

%%双峰函数
[x,y,z]=peaks(30);
mesh(x,y,z)
grid

这篇关于matlab从入门到秃头的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889904

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

MySQL入门到精通

一、创建数据库 CREATE DATABASE 数据库名称; 如果数据库存在,则会提示报错。 二、选择数据库 USE 数据库名称; 三、创建数据表 CREATE TABLE 数据表名称; 四、MySQL数据类型 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串类型 4.1 数值类型 数值类型 类型大小用途INT4Bytes整数值FLOAT4By