假设我有一个数据集数组(来自统计工具箱):
>> myds
myds =
Observation SheepCount
1 88
2 2
3 14
4 12
5 40
我正在从各种来源整理数据,因此我想在将此数据集与其他数据集一起使用
vertcat
之前,将这些观测值中的 'Location' 设置为 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*ones(length(myds),1)
,这仍然有点丑陋。 - rescdskmyds.Location=4*ones(size(myds.Observation))
很清晰易懂,并且只需一行代码即可完成任务。 - user616736