比方说,我有一个数据集的数组(从统计工具箱):在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