2013-07-05 2 views
0

Я использую следующий код, чтобы найти конкретную запись в моем наборе данных и установите значение obsNum:Как увеличить значение наблюдения на единицу?

originalSet(strcmp(originalSet.ABC, subset.DEF{row}) & strcmp(originalSet.FGH, task),21) = dataset(obsNum); 

Однако, я хотел бы увеличить значение по obsNum вместо того, чтобы его obsNum, но я не может найти синтаксис для него. В Java я бы просто написал +=, но как я могу это сделать в Matlab?

+0

Я не полностью понимаю ваш фрагмент кода, но по вашему описанию, это что ты хочешь? currentvalue = currentvalue + obsNum – Cici

+0

Cici это именно то, чего я хочу достичь! – RoflcoptrException

+0

См.: [Что эквивалентно + = в MATLAB?] (Http://stackoverflow.com/questions/6637735/what-is-is-the-equivalent-to-in-matlab). Matlab не поддерживает [составные операторы присваивания] (http://en.wikipedia.org/wiki/Operators_in_C_and_C++#Compound_assignment_operators). – horchler

ответ

1

Там нет поддержки синтаксиса Matlab для оператора +=, вам необходимо индексировать в переменную дважды:

idx = strcmp(originalSet.ABC, subset.DEF{row}) & strcmp(originalSet.FGH, task); 
originalSet(idx,21) = originalSet(idx,21) + dataset(obsNum); 
+0

Большое спасибо, я попробую это. – RoflcoptrException