零基础入门Matlab(一篇两个小时就能学完的入门博客) |
您所在的位置:网站首页 › matlab初学者易犯错误 › 零基础入门Matlab(一篇两个小时就能学完的入门博客) |
目录
零基础入门matlab前言1.界面认识2.变量命名3.数据类型4.元胞数组和结构体5.矩阵操作6.程序结构7.基本绘图操作7.1.二维平面绘图7.2.三维立体绘图
8.图形的保存与导出9.补充
零基础入门matlab
前言
这篇文章很适合MATLAB的入门学习,这也是我在入门时学习的笔记。 虽然说是”零基础“入门matlab,但是如果有其它编程语言基础的话,学起来自然会更轻松。 特别鸣谢:B站UP主——爱研究的小阿楠 1.界面认识 2.变量命名注:Matlab中的注释 %% 独占一行的注释(有上下横线分割) % 普通注释 1)清空环境变量及命令 clear all 清除Workspace中的所有变量(右侧工作区) clc 清除Command Window中的所有命令(命令行窗口) 2)变量命名规则 ①变量名区分大小写 ②变量名长度不超过63位(hhh,不会有人把变量名弄这么长吧~) ③变量名简洁明了,尽量做到见名知意 3.数据类型1)数字 2 + 4 10-7 3*5 8/2 2)字符与字符串 s = ‘a’ (单引号表示字符串) ==abs(s)==ASCII码 char(97) 输出 a (ASCII码转字符串) num2str(65) 输出数字65 str=‘I love MATLAB & Machine Learning’ length(str) 字符串长度 doc num2str 3)矩阵(Matlab最NB的东西) A = [1 2 3; 4 5 2; 3 2 7] B = A'把A进行转置,行变列,列变行 C = A(:) 竖向拉长(不好描述,直接看下图) D = inv(A) 逆矩阵(必须时方阵才能求逆矩阵) 执行下面两条语句 D = inv(A) (求逆矩阵) A * D (相当于A×A的逆) E = zeros(10,5,3) 创建一个10行5列3维的全0矩阵 E(:,:,1) = rand(10,5) rand生成均匀分布的伪随机数。分布在(0~1)之间 主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数 rand(m,n,‘double’)生成指定精度的均匀分布的伪随机数,参数还可以是’single’ rand(RandStream,m,n)利用指定的RandStream(随机种子)生成伪随机数 E(:,:,2) = randi(5,10,5) randi生成均匀分布的伪随机数 主要语法:randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机数 randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵 r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵 E(:,:,3) = randn(10,5) randn生成标准正态分布的伪随机数(均值为0,方差为1) 主要语法:和上面一样 4.元胞数组和结构体 元胞数组:是MATLAB中特有的一种数据类型,是数组的一种,其内部元素可以是属于不同的布局类型,概念理解上,可以认为它和C语言里面的结构体、C++里面的对象很类似。元胞数组是MATLAB中的特色数据类型,它不同于其它数据类型(如字符型,字符数组或者字符串,以及一般的算数数据和数组)。它特有的存取数据方法决定了它的特点,它有给人一种查询信息的感觉,可以逐渐追踪一直到所有的变量全部翻译成基本数据信息。它的class函数输出就是cell(细胞) %元胞数组 A = cell(1,6) A{2} = eye(3) %2021版本前的matlab下标从1开始 A{5} = magic(5) B = A{5}注:magic:字面意思是魔方,魔术的意思。在MATLAB中用来生成n阶幻方。比如三阶幻方就是1-9九个数字,组成一个3*3的矩阵,使得该矩阵无论横、竖还是斜三个方向上的三个数的和总是相同的。幻方是一个很古老的问题,试一下就知道了! 结构体 %结构体 books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40]) books.name %属性 books.name(1) books.name{1} 5.矩阵操作1)矩阵的定义与构造 A = [1,2,3,4,5,6,5,4,6] B = 1:2:9 %第二个参数为步长,不可缺省 B = 1:3:9 C = repmat(B,3,2) %重复执行3行2列 D = ones(2,4) %生成一个2行4列的全1矩阵2)矩阵的四则运算 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' F = A .* B % .*表示对应项相乘 G = A / B %相当于A*B的逆 G*B = A G*B*pinv(B) = A*pinv(B) G = A*pinv(B),相当于A乘B H = A ./ B % ./表示对应项相除3)矩阵的下标 A = magic(5) B = A(2,3) C = A(3,:) % :为取全部,那么这条语句表示取第三行 D = A(:,4) %取第四列 [m,n] = find(A > 20) %找到大于20的序号值/矩阵 %取的是索引值 6.程序结构 7.基本绘图操作 7.1.二维平面绘图 %1.二维平面绘图 x = 0:0.01:2*pi %定义x的范围,第二个参数表示步长 y = sin(x) figure %建立一个幕布 plot(x,y) %绘制当前二维平面图 title('y = sin(x)') %标题 xlabel('x') %x轴 ylabel('sin(x)') %y轴 xlim([0 2*pi]) % x坐标值的范围 x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); figure [AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); %共用一个x的坐标系,在y上有不同的取值 %设置相应的标签 set(get(AX(1),'Ylabel'),'String','Slow Decay') set(get(AX(2),'Ylabel'),'String','Fast Decay') xlabel('Time(\musec)') title('Multiple Decay Rates') set(H1,'LineStyle','--') set(H2,'LineStyle',':') 7.2.三维立体绘图 %2.三维立体绘图 t = 0: pi/50: 10*pi; plot3(sin(t),cos(t),t) xlabel('sin(t)') ylabel('cos(t)') zlabel('t') %hold on %hold off %不保留当前操作 grid on %把图片绘制出来,在图片中加一些网格线 axis square %使整个图(连同坐标系)呈方体注:关于hold on 和 hold off的用法:点这 8.图形的保存与导出如果直接用截图的方式截取matlab生成的图像,会影响图像的清晰度。因此我们建议:可以用如下方法保存与导出图形。 1)如图 2)编辑→复制选项 可调节相应元素 3)编辑→图窗属性 4)文件→导出设置 通过调节宽度、高度等像素值属性,可以让图片即使很小,文字依然清晰。 Matlab基础的部分到这就结束了,下面作一点补充~ 9.补充 [x,y,z] = peaks(30); %peaks命令用于产生双峰函数或者是用双峰函数绘图 mesh(x,y,z) grid完结~ 感谢大家的支持、点赞、收藏、关注以及批评指正~ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |