我正在嘗試創建一個具有方法洗牌和處理的類'Deck',但是,我不知道爲什麼我的函數'shuffle'isn'運行。我收到錯誤消息:對'cell'類型的輸入參數未定義函數或方法'shuffle'
對'cell'類型的輸入參數未定義函數或方法'shuffle'。
有人可以解釋爲什麼該功能沒有運行?非常感謝你。 我先前所創建classdef「卡」
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
aha oh ya,我想我忘了那個。謝謝。 –
這條線做了什麼:obj {k} = obj(hf);如果這段代碼是一個matlab代碼,我認爲花括號不會出現在'='符號的左側。它們僅用於在左側分配值。還有什麼是順序排列函數:hf = shuff(k);? – Kishore
我做了obj(k)= obj(hf)來擾亂索引的順序,從而洗牌。遐,我不知道大括號。我認爲使用它們是因爲甲板是一個單元格,但主要是爲了洗牌的順序。 –