gpt4 book ai didi

oop - 在 Matlab 中设置对象的属性

转载 作者:太空宇宙 更新时间:2023-11-03 19:44:57 24 4
gpt4 key购买 nike

所以我在设置对象的特定属性时遇到了问题。我对 Matlab 比较陌生,尤其是面向对象编程。下面是我的代码:

classdef Card < handle
properties
suit;
color;
number;
end

methods
%Card Constructor
function obj= Card(newSuit,newColor,newNumber)
if nargin==3
obj.suit=newSuit;
obj.color=newColor;
obj.number=newNumber;
end
end

function obj=set_suit(newSuit)
obj.suit=(newSuit);
end

一切运行良好,直到我尝试 set_suit 函数。这是我在命令窗口中输入的内容。

a=Card

a =

Card handle

Properties:
suit: []
color: []
number: []

Methods, Events, Superclasses

a.set_suit('Spades')
Error using Card/set_suit
Too many input arguments.

这总是返回太多输入参数的错误。对此和一般的面向对象编程的任何帮助将不胜感激。

最佳答案

对于类methods (非 static )第一个参数是对象本身。因此,您的方法应如下所示:

function obj=set_suit( obj, newSuit)
obj.suit=(newSuit);
end

注意参数列表开头的附加 obj 参数。

现在您可以通过以下方式调用此方法

a.set_suit( 'Spades' );

set_suit( a, 'Spades' );

关于oop - 在 Matlab 中设置对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15239812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com