EDA365电子论坛网

标题: 请教,我的matlab类操作为何不能保存结果? [打印本页]

作者: Housekk    时间: 2021-12-22 13:48
标题: 请教,我的matlab类操作为何不能保存结果?
我用的是matlab R2020a。 我新建一个类,有成员x、y和s。 类构造函数对x和y赋值。 类方法 myAdd将x和y相加,结果存入s。 调试时,位于类方法函数时,能看到s为正确值,但回到主程序后,对象a的成员s就成了空数组。 请教,如何才能将类方法的结果存入到类成员变量中?谢谢! % -----------主函数-------------- a=myClass(1,2) a.myAdd a.s %------------类定义------------- classdef myClass properties x; y; s; end methods function obj=myClass(a,b) obj.x=a; obj.y=b; end function myAdd(obj) obj.s=obj.x+obj.y end end end
作者: ninik342    时间: 2021-12-22 14:56
类定义改为:) E! w: Y$ u5 L$ {. E* z! U
2 N3 }2 W, V" L( g* s- p
classdef myClass  < handle* v+ {  S; F: t) e9 L
     properties3 A, X, h' k. r. e* Q: r
         x;6 e) ]: \7 N# |* h
         y;
3 n, y; A. V: J$ w6 l- w# D         s;5 K! m2 H& N. b% x; T2 a
     end  x8 p# d1 n: V
     methods: y: C" R5 ]% C. N
         function obj=myClass(a,b)* \& p/ ~6 z- B2 n, D# ?
             obj.x=a;% @0 s- u  m4 c- y+ ?3 d, m
             obj.y=b;0 @. D3 ^* }5 [' C  N
         end% q( I, _) `; F) }" J( d% }
         function myAdd(obj)
5 }7 w. w3 [( |# O. _             obj.s=obj.x+obj.y
& i% A, c9 r# y+ x  m4 }! ?9 H% u         end4 X' @( m- ^3 r* ]
     end2 V3 I9 F' _# t# k2 b6 t; \" D  X
end
作者: unix16785    时间: 2021-12-22 15:44
编程不是matlab 的强项, 多数人是用matlab 的功能,  如果是冲着解决问题去  你直接弄个  global 解决,  如果是冲着学习面向对象编程  c++  还好用些。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2