2016-12-12 2 views
0

Я пишу некоторый код Matlab, который я обрабатываю на C++. C++ выглядит следующим образом:Matlab Array с тем же именем Имя

ICOMPL[dataPath].Value =5; 

Как написать это в Matlab, так что синтаксис похож? Например;

ICOMPL = [0,1,2,3]; 

Давайте мне делать

ICOMPL(datapath+1) = 5; 

Но как добавить значение часть? Мне понадобится, чтобы каждый элемент в массиве имел значение имени.

ответ

2

Обратите внимание, что MATLAB не является C++, поэтому не все должно быть одинаковым, особенно когда вы попадаете на объекты. Мой ответ предполагает, что ICOMPL не является объектом класса, а struct:

Вы можете создавать структуры в MATLAB, а также массивы структур.

на структуру так же легко, как

ICOMPL.Value= 5; 

Массив структур:

ICOMPL(datapath+1).Value = 5; 

Таким образом, каждый из ICOMPL будет целая структура. Обратите внимание, что вам может быть необходимо, и вы можете захотеть получить

ICOMPL.Value= 1:5; 

Отдельная структура с несколькими значениями для каждого из ее элементов. С этим последним легче работать в MATLAB. Это ваше решение сделать.

+0

Это не должно быть одинаковым, но это делает анализ на C++ проще, если он есть. Можете ли вы привести пример массива структур? Я думаю, мне нужно было бы назвать их value0, value1 и т. Д. – user1876942

+0

@ user1876942 Я уже привел вам пример ... ICOMPL (1) .Value = 1; ICOMPL (2) .Value = 2; ' –

+0

Это работает в командной строке; но как инициализировать это в коде? – user1876942

Смежные вопросы