У меня есть трехмерная матрица с именем Spr размера 5x5x500. Последнее измерение представляет индивидуумов, а первые два измерения относятся к состояниям. Следовательно, для каждого человека я сохраняю матрицу вероятностей перехода 5х5 из состояния i в состояние j. Например, вероятность перехода последнего индивида является:Matlab: индексирование многомерного массива с матрицей
Spr(: , : , 500)
ANS =
0.1386 0.3768 0.2286 0.1871 0.0688
0.1456 0.3959 0.2401 0.1966 0.0218
0.1475 0.4011 0.2433 0.1992 0.0090
0.1486 0.4039 0.2450 0.2006 0.0020
0 1.0000 0 0 0
Я хотел бы получить доступ к трехмерный матрице SPR с первым индексом, предоставляемым в 500x1 матрице S, которая хранит в в котором указывается конкретный индивидуум. Следовательно, моим окончательным результатом будет матрица 1x5x500. Например, если пятисотый индивидуум в настоящее время в состоянии S (I) = 2 соответствующая строка для этого человек будет соответствовать:
Spr(S(i),:,i)
0.1456 0.3959 0.2401 0.1966 0.0218
Как я могу сделать это без использования петли?
Я попытался с помощью sub2ind функции в Matlab , но она не работает, как это требует, чтобы все индексы целые и по существу мой второй индекс характер «:».
Действительно, цикл кажется намного проще. Мне нужно встроить эту операцию в другую для цикла, и я боялся, что это займет много времени, имея вложенные циклы. Спасибо! – Georgia2004