У меня есть массив 2549x13 double (M).Найти значение, которое соответствует индексу
Пример линии:
-7.8095 -4.4135 -0.0881 2.5159 6.3142 6.9519 4.9788 2.9109 0.6623 -0.9269 0.3172 1.2445 -0.0730
4.5819 6.2371 5.8721 6.1824 5.2074 4.8656 5.0269 5.3340 3.6919 1.3608 -0.5443 0.2871 -1.2070
-6.2273 -3.7767 1.1829 2.8522 3.2428 0.5261 -3.5535 -7.7743 -8.4391 -9.8188 -6.0503 -5.8805 -7.7700
-2.2157 -3.2100 -4.4400 -3.5898 -0.8901 3.4061 6.5631 7.2028 4.3082 -0.7742 -5.0963 -3.1837 0.4372
5.5682 5.5393 3.4691 0.6789 1.7320 4.4472 3.7622 1.0194 -0.5362 -3.1721 -6.1281 -6.3959 -6.1932
0.9707 -0.2701 -3.8883 -8.8974 -7.0375 -1.5085 5.4171 6.0831 2.9852 -2.3474 -4.5637 -3.7378 1.3236
-2.811 0.0164 2.7208 5.7862 7.3344 8.3504 9.0635 8.4271 2.7669 -2.1403 -2.2003 -0.9940 0.7729
4.2382 3.3532 3.5475 7.9209 11.7933 14.3181 13.6289 12.9553 13.7464 14.1331 14.3814 16.7949 15.9003
-0.0539 -2.7059 -3.8141 -2.7531 -1.7465 0.9190 2.2220 0.7268 1.5436 1.0426 2.3535 3.0269 6.4798
У меня также есть индексы некоторых значений мне нужно, 2549x5 дважды (INDE).
Пример строки:
4 5 6 7 8
0 1 2 3 4
3 4 5 6 7
6 7 8 9 10
-1 0 1 2 3
6 7 8 9 10
5 6 7 8 9
10 11 12 13 14
11 12 13 14 15
Теперь я хочу, чтобы создать новый массив/матрица с фактическими значениями. Итак, найти в массиве M значения, соответствующие индексам inde.
Однако, если индекс (в inde) равен нулю, я хотел бы принять значения, соответствующие делениям 1,2,3,4 этой строки. Если индекс равен -1 или 15, я хотел бы добавить NaN в новый массив/матрицу. Если индекс равен 14, я хотел бы принять значения, соответствующие 10,11,12,13. Так что я хотел бы получить:
2.5159 6.3142 6.9519 4.9788 2.9109
NaN 4.5819 6.2371 5.8721 6.1824
1.1829 2.8522 3.2428 0.5261 -3.5535
3.4061 6.5631 7.2028 4.3082 -0.7742
NaN
-1.5085 5.4171 6.0831 2.9852 -2.3474
7.3344 8.3504 9.0635 8.4271 2.7669
14.1331 14.3814 16.7949 15.9003 NaN
NaN
Очень благодарен всем, кто может помочь с этим.
Есть много проблем в вашем вопросе. Прежде всего MATLAB не определяет индексы равными нулю. Поэтому одно из ваших условий недействительно. Я предполагаю, что вы имеете в виду первый индекс.После этого ваша искомая матрица имеет некоторые проблемы. Вторая строка не имеет элемента в последнем столбце. То же самое и с восьмой строкой. т.е. нет элемента в его первом столбце. & что такое NA? это вектор строки 1x5? Я могу создать желаемый результат, считая 'NA', чтобы быть рядом всех« NaN »и случайным образом заполнять недостающие элементы во 2-й и 8-й строках! Я отправлю ответ, когда вы уточните упомянутые проблемы. –
@Sardar_Usama Re индексирует: я сделал, чтобы определить максимальное значение в матрице * M * для каждой строки. '[Peak Ind] = max (M, [], 2);' Тогда мне нужно было рассмотреть 2 значения до и после максимального значения. 'inde = bsxfun (@ plus, Ind, -2: 2);' Поэтому я получаю нули в индексах. – dede
@Sardar_Usama Требуемая матрица: то, что я хотел бы иметь, - это 2 значения до и после максимального значения. Однако, когда есть индекс 0 в * inde *, это означает, что мое максимальное значение находилось во 2-м столбце матрицы * M *. Поэтому мне нужно рассмотреть только 1 значение, предшествующее максимальному значению, и 2 значения после максимального значения. Вот почему последнее значение второй строки отсутствует. То же самое для 8-й строки. Здесь максимальное значение находится во втором последнем столбце. Поэтому мне нужно рассмотреть 2 значения, предшествующие максимальному значению, и 1 значение после максимального значения. Вот почему первое значение 8-й строки отсутствует. – dede