我想爲真實世界的問題創建一個模擬並使用面向對象的編程。Matlab ObjectOrientated Programming Vectorize
比如我有一個這樣的類:
classdef person
properties
name % string
age % integer
height % double (was called 'size' before - which might be a bad idea, see post below)
end
end
現在一個人我可以
p1 = person;
創建和
p1.name = 'Karl';
p1.age = 35;
p1.size = 1.80;
所以我們必須給它的屬性一個名叫卡爾的個人,年齡35歲,身高1.80米。
我現在想要的是矩陣,例如我有一個島的matrix1
,其中0
的所有條目都是水,並且所有條目都是1
代表土地。現在我想隨機隨地填充這些土地,以至於無處不在,matrix1
的「土地」在哪裏可以放置person
在matrix2
,其他的都是0。
第一個:有沒有一種方法來實現這一點?如何快速創建這樣的矩陣,而不是通過兩個for-loop元素來初始化這個元素?
第二:然後,我怎麼能夠訪問數據? (如old_ppl = matrix2(person.age >= 50)
)
第一個直覺,如果你想能夠引導對一系列對象的操作,你將不得不創建一個personCollection對象,它可以收集所有這些人,並且在這個集合類中實現一個方法,該方法可以接受/處理向量化的輸入/輸出。 – Hoki 2014-12-05 10:49:55
** first **你想要一個隨機排序的0,1矩陣嗎?如果是這樣,只需生成一個隨機矩陣'A = rand(1000)'返回一個1000x1000的矩陣,其值從0變爲1.現在你做'A(A <0.5)=0;A(A> = 0.5)= 1;'你得到一個隨機矩陣爲0,1。現在用你的第二個矩陣......你想讓這些人隨機放置在你的「土地」上嗎?你是否有足夠的人來填充一個完全是矩陣的矩陣?畢竟不太可能,但可能。 – 2014-12-05 10:50:18
是的,他們應該隨機放在土地 – user3079834 2014-12-06 09:19:04