美文网首页
利用matlab面向对象编程实现数据非线性拟合

利用matlab面向对象编程实现数据非线性拟合

作者: 快乐的夏天_eaf9 | 来源:发表于2019-05-22 17:31 被阅读0次

本实例展示了如何使用面向对象的方法对数据进行非线性拟合;涉及到的主要知识点为:

  1. 利用nlinfit进行非线性拟合;
  2. 利用Dependent关键词实现属性的实时更新;
  3. 使用get和set实现对属性的赋值(其实不需要,仅仅是为了示范其写法);
  4. 使用了局部函数;
    具体的代码如下:
classdef Rate_cal<handle
    
    properties
        x;
        y;
    end
    
    properties(Dependent)
        Fit;
        Rate;
        Hfigure;
    end
    
    methods
        function obj = Rate_cal(x,y)
            obj.x=x;
            obj.y=y;
        end
        
        function set.x(obj,val)
            obj.x=val;
        end
        
        function set.y(obj,val)
            obj.y=val;
        end
        
        function Fit=get.Fit(obj)
            [Fit,~]=Rate_cal3(obj.x,obj.y);
        end
        
        function Rate=get.Rate(obj)
            [~,Rate]=Rate_cal3(obj.x,obj.y);
        end
        
        function Hfigure=get.Hfigure(obj)
          Hfigure= plot(obj.x,obj.y);
        end
    end
end


function [f,f3]=Rate_cal3(x,y)
% 本函数用于计算物质生成/消耗速率
%
% f为物质检测数据的拟合;f3为物质消耗速率方程
%
% see also:nlinfit,matlabFunction

f=@(b,x)(b(2) + (b(1)-b(2))./(1 + exp((x-b(3))./b(4))));
beta0=[63;7;14;3];
beta = nlinfit(x,y,f,beta0);
syms t;
f=f(beta,t);
f2=diff(f,t,1);
f3=matlabFunction(f2);
f=matlabFunction(f);
end

相关文章

  • 利用matlab面向对象编程实现数据非线性拟合

    本实例展示了如何使用面向对象的方法对数据进行非线性拟合;涉及到的主要知识点为: 利用nlinfit进行非线性拟合;...

  • 类与对象(1) - Class、Object

    面向对象编程思想 Java开发是利用 面向对象 的思想实现 面向过程 的开发。 面向对象编程(OOP:Object...

  • 13-类

    面向对象 面向对象编程:OOP是利用“类”和“对象”来创建各种模型开实现对现实世界的描述,使用面向对象编程的原因一...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

  • Lua 元表和元方法

    table 作为 Lua 中唯一的数据结构,我们可以利用 table 实现面向对象编程中的类、继承、多重继承等等。...

  • 面向对象基础

    一、面向对象概述 1、面向对象编程包括: OOA:面向对象分析OOD:面向对象的设计OOP:面向对象的编程实现 2...

  • *思想构建

    面向对象编程 面向对象编程踩上了进化的步伐,增强了结构化编程,实现了数据与动作的融合:数据层和逻#辑层现在由一个可...

  • python面向对象

    什么是面向对象 面向对象编程是一种编程方式,此编程方式需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其...

  • 关于python中面向对象(一)

    什么是面向对象? 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对...

  • (17.06.06)面向对象、创建一个类、devicemotio

    笔记 什么是面向对象?    面向对象是一种编程思想:OOP    面向过程    面向对象    面向数据 作用...

网友评论

      本文标题:利用matlab面向对象编程实现数据非线性拟合

      本文链接:https://www.haomeiwen.com/subject/lmnuzqtx.html