【发布时间】:2012-11-30 05:03:55
【问题描述】:
我正在尝试创建一个具有 shuffle 和 deal 方法的类“Deck”,但是,我不知道为什么我的“shuffle”函数没有运行。我收到错误消息:
“cell”类型的输入参数的未定义函数或方法“shuffle”。
有人可以解释为什么该功能没有运行吗?非常感谢你。 我正在调用以前创建的 classdef 'Card'
classdef Deck < handle;
properties;
diamond;
spade
heart;
club;
end;
methods;
function obj=create(deck);
for k=1:13;
%Designate a number to each suit to create the deck
obj(k).diamond=cards('D','R',k);
obj(k).spade=cards('S','B',k);
obj(k).heart=cards('H','R',k);
obj(k).club=cards('C','B',k);
end
%Create a vector of each suit and number accordingly until we
%have 52 cards. 13 of each suit.
obj={obj.diamond obj.spade obj.heart obj.club};
end
%%
function obj=shuffle(obj);
shuff=randperm(52);
for k=1:52;
hf=shuff(k);
obj(k)=obj(hf);
end
end
end
end
【问题讨论】:
-
啊哈哦,我想我忘记了。谢谢。
-
这一行是做什么的:obj{k}=obj(hf);如果此代码是 matlab 代码,我认为大括号不会出现在“=”符号的左侧。它们仅用于在左侧分配值。还有什么是 shuffle 函数:hf=shuff(k);?
-
我做了 obj(k)=obj(hf) 来打乱它的索引顺序,从而洗牌。是的,我不知道花括号。我想使用它们,因为甲板是一个单元格,但主要是那条线是洗牌的顺序。