比方說,我有一個數據集的數組(從統計工具箱):在Matlab數據集數組變量設置爲一個值
>> myds
myds =
Observation SheepCount
1 88
2 2
3 14
4 12
5 40
我把一起從各種來源的數據,所以我想在將這個數據集與其他數據集合在一起之前,將「位置」設置爲4。在一個正常的矩陣中,你會說myds(:, 3) = 4
,它會將4廣播到矩陣中的所有空間。
有沒有辦法在數據集上做到這一點,而不使用repmat
?
事情我已經試過了不起作用:
myds(:, 'Location') = 4
myds(:).Location = 4
myds.Location(:) = 4
myds.Location = 4
的事物,它們:
myds.Location = 4; myds.Location(:) = 4; % have to run both
myds.Location = repmat(4, length(myds), 1);
所以,我必須克服我厭惡
repmat
?謝謝。
編輯:我想我真正想要的是避免指定4的數組的尺寸。
謝謝,這很好,但決不是一個簡單的情況下,它仍然必須是'4 *者(長度(myds) ,1)',這仍然有點醜陋。 – rescdsk 2011-05-09 20:51:16
我明白你想要做什麼,但我不認爲它可以用數據集來完成,儘管它對數組非常好。你的第一個建議也許是最簡單的。就個人而言,我會說'myds.Location = 4 * ones(size(myds.Observation))'很清楚理解,並且可以完成一行工作。 – abcd 2011-05-09 21:41:15