matlab——之class类(详细总结)

开篇:搜了一下网上介绍matlab的class类,信息不全,且总结不全面,于是单独help classdef以下做个详细总结

首先从类的定义说起,面对对象的编程思维通常包括,属性(类成员变量),方法(类成员函数)

基本语法为:

 

classdefclassname类名

   properties类属性PropName

   end

   methods类方法  methodName

   end

   events类事件EventName

   end

   enumeration类列举EnumName

   end

end

类名

属性:

设置属性值:

使用属性set方法来验证分配给属性的值。 属性set方法可以执行诸如对输入值进行错误检查之类的操作,然后再采取任何必要的操作来存储新的属性值。

值类设置函数必须将修改后的对象返回给调用函数。 处理类不需要返回修改后的对象。

语法:

示例:

 

  1. methods  
  2.       function obj = set.Material(obj,material)  
  3.          if ~(strcmpi(material,'aluminum') ||...  
  4.                strcmpi(material,'stainless steel') ||...  
  5.                strcmpi(material,'carbon steel'))  
  6.             error('Material must be aluminum, stainless steel, or carbon steel')  
  7.          end  
  8.          obj.Material = material;  
  9.       end % Material set function  
  10.         
  11.       function modulus = get.Modulus(obj)  
  12.          ind = find(obj.Strain > 0); % Find nonzero strain  
  13.          modulus = mean(obj.Stress(ind)./obj.Strain(ind));  
  14.       end % Modulus get function  
  15.         
  16.       function obj = set.Modulus(obj,~)  
  17.          fprintf('%s%d\n','Modulus is: ',obj.Modulus)  
  18.          error('You cannot set Modulus explicitly');  
  19.       end 
  20. end

 

方法method:

 

使用语法:

参数设定:

 

 

文件夹:

 

类文件保存:注意@名词空间(与类名相同,例子中都为classNameA)
注意@名词空间(与类名相同,例子中都为classNameA)

添加部分:

当我使用时,我发现如何调用这里面的class以及其他.m函数

1、函数调用

2、类调用

 

参考:类文件夹,分开定义一个类;http://www.cnblogs.com/jmpep/archive/2012/06/29/4486346.html

参考:类的继承以及类的使用;https://blog.csdn.net/beechina/article/details/50933860

参考:百度文库定义一个类;https://wenku.baidu.com/view/5b19e78f50e2524de5187e59.html

  • 50
    点赞
  • 243
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
熵权法是一种客观赋值方法,可以用来确定指标的权重。在使用过程中,熵权法根据各指标的变异程度,利用信息熵计算出各指标的熵权,再通过熵权对各指标的权重进行修正,从而得到较为客观的指标权重。具体实现过程可以使用Matlab来进行计算。 首先,需要构造评价矩阵Ymn,然后对数据进行处理。对于越小越优的指标,可以使用越小越优型处理,即将指标的最大值减去该指标的原始值。对于某点最优型指标,可以根据给定的最优型数值,计算指标的最优型得分。接下来,可以使用数据标准化方法(如mapminmax函数)对数据进行标准化,将数据转换到指定的区间。然后,可以计算每个指标的信息熵,根据信息熵计算各指标的权重。最后,可以根据计算得到的权重,计算指标的得分。 在Matlab中,可以使用如下代码实现熵权法的计算: ```matlab clc; clear; % 读取数据 data = xlsread('D:\桌面\shangquan.xlsx'); data = data(:,3:end); % 只取指标数据 % 指标正向化处理 data1 = data; % 越小越优型处理 index = [3,4]; % 越小越优指标位置 for i = 1:length(index) data1(:,index(i)) = max(data(:,index(i))) - data(:,index(i)); end % 某点最优型指标处理 index = [5]; a = 90; % 最优型数值 for i = 1:length(index) data1(:,index(i)) = 1 - abs(data(:,index(i)) - a) / max(abs(data(:,index(i)) - a)); end % 数据标准化 data2 = mapminmax(data1',0.002,1); % 标准化到0.002-1区间 data2 = data2'; % 计算信息熵 [m,n = size(data2); p = zeros(m,n); for j = 1:n p(:,j) = data2(:,j) / sum(data2(:,j)); end for j = 1:n E(j) = -1/log(m) * sum(p(:,j) .* log(p(:,j))); end % 计算权重 w = (1 - E) / sum(1 - E); % 计算得分 s = data2 * w'; Score = 100 * s / max(s); disp('12个银行分别得分为:') disp(Score) ``` 这段代码可以计算出给定数据集中各指标的权重和得分,其中包括了评价矩阵的构造、指标处理、标准化、信息熵计算、权重计算和得分计算等步骤。最后输出每个银行的得分。 请注意,以上代码仅为示例,具体实现过程可能会根据实际需求和数据格式的不同而有所变化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【综合评价分析】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列](https://blog.csdn.net/m0_52474147/article/details/127176733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [熵权法 —— matlab](https://blog.csdn.net/qq_25990967/article/details/122588120)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值