Установить переменную в массиве Matlab Dataset в одно значение - PullRequest
3 голосов
/ 10 мая 2011

Допустим, у меня есть массив наборов данных (из набора инструментов статистики):

>> myds
myds = 
    Observation    SheepCount
    1              88        
    2               2        
    3              14        
    4              12        
    5              40

Я собираю данные из разных источников, поэтому я хотел бы установить для параметра "Местоположение" значение 4 ввсе эти наблюдения, прежде чем я vertcat этот набор данных вместе с другими.В обычной матрице вы бы сказали 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?Спасибо.

edit : Полагаю, я действительно хочу избежать указания размеров массива из 4-х.

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Вы можете попробовать использовать ones вместо repmat.

myds.Location=4*ones(1,5);
1 голос
/ 10 мая 2011

это не элегантно, но вы также можете попробовать:

myds.Location= myds.Observation*0 + 4;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...