由于在有道云笔记中编辑的文档直接导入后会有部分不兼容的情况(比如说目录失效了...),大家注意一下下。
写下本文的目的是帮助自己或者他人在想用 MATLAB 来完成一些任务时,能够快速熟悉并上手,起到入门教程的用途。
MATLAB 基础数据类型主要包括:
包含:
y = int8(10);
y = uint8(10);
% 类似的还有int16, uint16, int32, uint32, int64, uint64
% 单精度浮点型
y = single(0.1);
y = double(5.324);
注:MATLAB 会对变量自动进行内存分配和回收,因此专注于算法本身即可。
% 向下取整
floor(1.4) = 1
% 向上取整
ceil(1.4) = 2
% 最接近的整数
round(1.5) = 2
% 向0取整
fix(1.4) = 1
y = complex(3,5);
% 返回实部
y = real(z);
% 返回虚部
y = imag(z);
Inf:正无穷量
-Inf:负无穷量
NaN:非数值量(一般由0/0或Inf/Inf 运算产生)
% 字符
a = 'A';
% 字符串
a = 'Hello';
% 通过下标索引,从1开始
a(1);
与 C 语言类似,存储不同类型数据。
% 通过赋值创建结构
patient.name = 'John';
patient.bill = 127.00;
% 通过 struct 函数创建结构
patient = struct('name','John','billing', 127.00);
% 连接结构对象(patient1 和 patient2 都是结构对象)
patient = [patient1, patient2];
% 创建单元数组
A = {'x',[2;3;6];10,2*pi};
B =cell(2,2);
% 访问单元数组,第1行第2列数据
b = A(1,2)
创建函数句柄需要用到操作符:@
% Function_Handle保存了函数句柄
% Function_Filename为 M 文件名称
Function_Handle = @Function_Filename;
% 类型识别
isa(obj,ClassName)
iscell();
iscellstr();
ischar();
...
% 转换函数
char();
int2str();
dec2bin();
hex2dec();
...
像其他语言一样,共有(优先级由高到低):
加括号可以明确优先级!
基础的: + - * /
高阶的: A./B A.*B(A,B为相同维度的矩阵)
强大之处: matlab支持大部分数学运算符,直接输入表达式即可,无需调用特定的数学函数。 举例来说:
% 以下两种方式等价:
2^3
power(2,3)
比较后,返回逻辑结果0或1.
基础的: > >= < <= ==
特殊的: 不等于号:~=
运算后,返回逻辑结果0或1.
基础的:
变量代表了一段可操作的内存,用来存储数据。
语句代表了对变量执行的操作。
命名规则:
变量类型:
global X_Val;
persistent a;
% if 类型
if expression
commands
end
if expression
commands1
else
commands2
end
if expression1
commands1
elseif expression2
commands2
...
else
commandsn
end
% switch case 类型
switch value
case test1
command1
case test2
command2
...
otherwise
commands
end
% try catch 类型
try
command1 % 首先尝试执行,若正确,可执行
catch
command2 % try 语句失败后执行
end
% for 类型(循环次数可知)
for x = array
commands
end
% while 类型(循环条件可知)
while expression
commands
end
脚本的特点:
M 文件名称和函数名称必须一致
M 文件函数:定义了输入参数或返回输出变量
function y = mean(x,dim,flag,flag2)
...
% 实际调用
X = [1 2 3]
y1 = mean(X)
y2 = mean(X,2)
没有函数名,只有表达式、输入输出参数。
% f 为函数句柄
f = @(input1, input2, ...) expression
% 调用
f(input)
也称局部函数。
M 函数文件出现的第一个函数称为主函数,其他称为子函数。
function [outputArg1,outputArg2] = myfun(inputArg1,inputArg2)
% 此处显示详细说明
outputArg1 = inputArg1;
outputArg2 = myadd(inputArg2);
end
% 以下为子函数
function y = myadd(inputArg3)
y = inputArg3 + 1;
end
程序错误分为:语法错误(编译器会提醒)和逻辑错误(程序员负责解决)。
调试手段小结:
由于内容较多,受篇幅限制,很多知识点不一而足,故制定版本记录,后续有需要再做更新。
日期内容2020-4-19初版内容发布----
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...