matlab 面向对象


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. {} , ()

  1. {} 返回元素的属性值
  2. () 返回元素的子集

2.6. addpath

在脚本中增加环境变量

addpath("D:\soft\")

2.7. 保存数据

  1. assignin 数据保存在工作区中

    assignin('base', 'x', x);
    % 'base' 保存的工作区, 或者'caller'
    % 'x' 导入工作区名称
    % x 变量名称
  2. save 保存数据到磁盘中

    save filename x

2.8. 使用摄像头

  1. 附加功能中选择下载使用webcams

    image-20251228224632005

  2. 使用webcam 调取

    a = webcam ; % 默认第一个摄像头
    cam = webcam(2) ; % 选择第二个摄像头
  3. 使用snapshot(cam) , 抓取一张图片

  4. preview(cam) 显示视频

在调用后需要清楚cam 对象,避免影响之后调用

一般放在appdesigner 中,声明为属性, 使用析构函数删除


文章作者: 小白菜
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小白菜 !
评论
 上一篇
2025-12-28 小白菜
下一篇 
yalmip使用 yalmip使用
2025-12-22 小白菜
  目录