1. matlab 面向对象
每个类定义在单独的.m 文件中, 文件名与类名相同
classdef test_class
% 定义属性
properties(Access = private)
Radius = 1; % 默认值
end
% 定义方法
methods
% 构造函数
function obj = test_class(r)
% nargin 内置变量, 表示输入参数个数
if nargin > 0
obj.Radius = r;
end
end
% obj 作为第一个参数
function area = getArea(obj)
area = pi * (obj.Radius^2);
end
% 重载disp 方法
function disp(obj)
fprintf('Circle with radius = %.2f \n', obj.Radius);
end
end
end
classdef test_inherit < test_class
properties
Height = 1;
end
methods
function obj = test_inherit(r, h)
% 调用父类构造函数
obj@test_class(r);
if nargin > 1
obj.Height = h;
end
end
function volume = getVolume(obj)
volume = obj.getArea()* obj.Height;
end
end
end
2. appdesigner
2.1. 绘图
plot, hold 都需要指定图像画布位置,即第一参数设置为app.UIAxes
x = 1: 0.01 : 10;
y = sin(x);
y1 = cos(x);
plot(app.UIAxes, x, y , 'LineStyle','-','Color','r');
hold(app.UIAxes, "on");
plot(app.UIAxes, x, y1, 'LineStyle','-', 'Color','b');
xlabel(app.UIAxes, "时间");
ylabel(app.UIAxes, "幅度");
title(app.UIAxes, "时域分析");
2.2. run
使用’run’ 命令启动一个m 脚本
delete(app.UIFigure) ; % 关闭当前文件
run new_app.mlapp; % 启动新的app
2.3. uigetfile
打开文件管理器,选择文件
[filename, pathname] = uigetfile({'*.png; *.jpg' ; '*.*'}, '选择图片')
2.4. readtable
读取数据,返回table 类型
2.5. {} , ()
- {} 返回元素的属性值
- () 返回元素的子集
2.6. addpath
在脚本中增加环境变量
addpath("D:\soft\")
2.7. 保存数据
assignin 数据保存在工作区中
assignin('base', 'x', x); % 'base' 保存的工作区, 或者'caller' % 'x' 导入工作区名称 % x 变量名称save 保存数据到磁盘中
save filename x
2.8. 使用摄像头
附加功能中选择下载使用webcams

使用webcam 调取
a = webcam ; % 默认第一个摄像头 cam = webcam(2) ; % 选择第二个摄像头使用snapshot(cam) , 抓取一张图片
preview(cam) 显示视频
在调用后需要清楚cam 对象,避免影响之后调用
一般放在appdesigner 中,声明为属性, 使用析构函数删除