Matlab简介

本文介绍了MATLAB的历史,强调了其作为矩阵计算工具的强大之处,包括基础矩阵运算、字符串处理、图像操作、数据拟合以及神经网络的使用。MATLAB通过丰富的工具包和灵活的编程思想提高了数值计算效率。
摘要由CSDN通过智能技术生成

Matlab历史

MATLAB是(Matrix Laboratory)的缩写,最初是美国新墨西哥大学Moler教授编写的LINPACK和EISPACK接口程序。
1984年,MathWorks公司创建,MATLAB正式推向市场。20世纪90年代以来,MATLAB已成为数值计算软件的佼佼者。
从底层架构上擅长矩阵计算、强大丰富的不会冲突的工具包(函数库)以及形成的平台生态是其优势。

以“矩阵运算”为基础

这导致编程思想上应有所变化。善于利用矩阵运算及已有的函数可简化程序且大大加快程序运算速度。
例:判断x1中元素是否大于4

 

赋值

数字:a=1;  b=pi;  c=2.56;
向量:a=[1,2,3];  b=[1;2;3];  (分别是行向量和列向量)
二维矩阵:a=[1 2 3; 4 5 6; 7 8 9]; 
矩阵的大小:[x,y]=size(a); 或 x=size(a,1);  y=size(a,2);
矩阵转置:b=a’;
生成等差数列向量:a=1:2:9;  a=[1 3 5 7 9]
生成特殊的矩阵:a=ones(m,n); b=zeros(m,n);
随机数生成:a=rand(m,n);
 

调用矩阵值

假定A=[1 2 3; 4 5 6; 7 8 9]; 

A(2,3)->ans=6
A(2,:)->ans=[4 5 6]
A(:,3)->ans=[3;6;9]
A(1:2,1:3)->ans=[1 2 3; 4 5 6]
 

字符串

a=‘Cloud is in the sky, and water is in the bottle’;  
b=‘云在青天水在瓶’;

一般不考虑用数组存储若干字符串(因为长度经常不等)。
可以用元胞数组(cell):c={a,b}; 元胞数组可以存储不同类型不同大小的变量,可看作是介于数组和结构体之间的一种数据结构。
c{2}->ans=’云在青天水在瓶’

字符串的首尾相接:c=strcat(a,b);
字符串的比较:c=strcmp(a,b);
数字转换成字符:a=2; num2str(a,’%d’)ans=’2’
显示字符串:disp(b);

matlab已经准备了你能想到的几乎所有基本或不基本的操作。查到所需的函数然后在命令行中输入help+函数名学习其使用规则即可。
例如:help num2str
 

基本矩阵运算

注意*是线性代数中讲过的矩阵乘法运算,而.*是两个size完全相同的矩阵进行对应矩阵元的乘法运算。以下点除、点乘幂同理。
加减法也适用于矩阵中所有矩阵元同时加减一个值的运算。

+

加法运算,适用于两个数或两个同阶矩阵相加. 

减法运算

*

乘法运算

.*

点乘运算

/

除法运算

./

点除运算

^

乘幂运算

.^

点乘幂运算

\

反斜杠表示左除. 

==

判断相应矩阵元是否相等

~=

判断相应矩阵元是否不等

Matlab中的矩阵乘法

判断函数

 

 

循环语句

存储程序的两种方法

一般没人会到命令行窗口里运行(在命令行里回车就直接执行语句了,如果需要换行而不执行应当是SHIFT+回车)。
在编辑器里写程序,一种是将给到命令行里的指令直接写在.m文件里(不以函数的形式存在),调用时直接在命令行里输入文件名即视同将这所有指令输入到命令行里执行。
另一种是用函数的方式存储:function [m,n,…]=fcnname(a,b,…)  函数内容   end。仍是存储在.m文件里。调用时按调用函数来处理。
注意,被调用的.m文件所在的文件夹需在matlab中的“设置路径”里添加进可被调用的文件夹库中,否则找不到这个文件。如安装其它基于matlab的“软件”也是同理。

命令形式or函数形式?

主要差别在于变量的调用与放置。
命令形式可以直接调用工作区(内存中)的已有变量,但执行过程中新定义的变量也将混入工作区中。
函数形式不会将函数运行中的变量混入工作区,函数运行结束之后这些变量直接释放。但给函数传入变量需要在函数中额外定义自变量(输入项)。
 

曲线的绘制

图片的读入、显示和存储

直接用imread(‘图片名+后缀名’)即可读入一般格式的图片。
对于医用图片,它是dicom格式,可用dicomread读入图片,及用dicominfo读取图片信息(例如扫描参数、扫描设备、被试姓名都存储在里面,出于隐私保护的考虑一般要设法隐去被试姓名)。
展示图片一般用imshow函数。潜在变量很多。
存储图片,save(gcf,‘包含路径的文件名’,’存储格式’)。gcf表示当前操作的图片,文件名如不包含路径则默认是存储在当前路径。
 

对图像的操作

数据拟合

高次多项式拟合:p=polyfit(x,y,n)。返回是这n次多项式的n+1个系数。
任意目标函数拟合:p=lsqcurvefit(@fcn,x,y,pini,pmin,pmax)。给定有未知参数待拟合的目标函数fcn,自变量x,因变量y,用最小二次模法(least square)拟合出未知参数p。
数值解方程:x=fsolve(@fcn,y)。即有方程fcn(x)=y,y已知,将x解出。
 

神经网络

生成前馈神经网络:feedforwardnet([k1 k2 k3 …])
这样生成的网络变量结构体(以下称为net)中内涵丰富(教师认为自己也没看全),一些有用的:net.trainFcn(迭代优化算法选择),net.trainParam(拟合参数选择,例如最多连续试错步数、最小步长等),net.divideparam(如何分割数据集、训练集评价集测试集的比例分配等),net.performParam.regularization(防止各神经元取值过大的过拟合)。

前馈神经网络的训练:train(net, input, output),建议使用并行计算以把所有核都用于跑数据,或者开GPU加速。不处理图片的网络还是较小,笔记本电脑足够。
使用训练好的网络进行计算:y=net(input)。
检查网络计算效果:perform( net, output, y)。


 

Matlab学习方法

搜索引擎+help函数

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LucyLee04

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值