У меня есть две матрицы A и B. Предположим, что я хотел бы найти в каждой строке матрицы A наименьшее число и для той же ячейки, что это число находится в матрице A, do найдите соответствующее число той же ячейки в матрице B. Например, число в матрице A будет находиться в позиции A (1,3), A (2,9) ... и я хочу, чтобы соответствующее число в B (1 , 3), B (2,9) ... Возможно ли это сделать, или я прошу что-то трудное для Matlab. Надеюсь, кто-то мне поможет.Matlab (та же ячейка в другой матрице)
ответ
Что вы можете сделать, это использовать min
и найти минимум по всем строкам для каждого столбца. Фактически вы бы использовали второй вывод, чтобы найти местоположение каждого столбца для каждой строки, которую вы хотите найти. Когда вы найдете их, просто используйте sub2ind
для доступа к соответствующим значениям в B
. Таким образом, попробовать что-то вроде этого:
[~,ind] = min(A,[],2);
val = B(sub2ind(size(A), (1:size(A,1)).', ind));
val
будет содержать выходные значения в матрице B
, которые соответствуют той же позиции, что и минимальные значения каждой строки в A
. Это также предполагает, что A
и B
имеют одинаковый размер. В качестве иллюстрации, вот пример. Давайте установим A
и B
как случайный массив из 4 x 4 целых чисел.
rng(123);
A = randi(10, 4, 4)
B = randi(10, 4, 4)
A =
7 8 5 5
3 5 4 1
3 10 4 4
6 7 8 8
B =
2 7 8 3
2 9 4 7
6 8 4 1
6 7 3 5
Выполнив первую строку кода, мы получим следующее:
[~,ind] = min(A,[],2)
ind =
3
4
1
1
Это говорит нам о том, что минимальное значение первой строки является третий столбец, минимальное значение следующей строки 4-й столбец и т. д. и т. д. После того, как мы эти номера столбцов, давайте доступ, что соответствующие значения в B
, поэтому мы хотели бы строки и столбцы (1,3)
, (2,4)
и т.д. Таким образом, после запуска второго утверждения, мы получим:
val = B(sub2ind(size(A), (1:size(A,1)).', ind))
val =
8
7
6
6
Если вы быстро проверьте доступные позиции в B
по сравнению с A
, мы нашли именно те места в B
, которые соответствуют A
.
Как будто у вас есть ответы, готовые и ждущие вопроса! хороший +1. – Rashid
О, спасибо большое rayryeng. Мне хотелось. Большое спасибо – user3714919
@ user3714919 Вы очень желанны. Если это был ответ, который вы искали, пожалуйста, подумайте о его принятии :) – rayryeng
A = randi(9,[5 5]);
B = randi(9,[5 5]);
[C,I] = min(A');
B.*(A == repmat(C',1,size(A,2)))
пример,
A =
2 1 6 9 1
2 4 4 4 2
5 6 5 5 5
9 3 9 3 6
4 5 6 8 3
B =
3 5 6 8 1
9 2 9 7 1
5 6 6 5 6
4 6 1 4 5
5 3 7 1 9
ans =
0 5 0 0 1
9 0 0 0 1
5 0 6 5 6
0 6 0 4 0
0 0 0 0 9
Вы можете использовать его как,
B(A == repmat(C',1,5))
ans =
9
5
5
6
6
5
4
1
1
6
9
- 1. та же деятельность другой listview
- 2. ячейка с несколькими столбцами в матрице в Matlab
- 3. ow ссылаться на расположение минимумов в другой матрице в Matlab?
- 4. Ячейка ячейки (ячейки разного размера) к матрице
- 5. удалить элементы с соответствующими нулями в другой матрице MATLAB
- 6. ячейка для структур в matlab
- 7. Замена строк в матрице (Matlab)
- 8. Удалить строку в матрице Matlab
- 9. Количество строк в матрице - Matlab
- 10. Matlab: как преобразовать массив ячеек в матрице
- 11. Та же высота divs?
- 12. Та же ширина табитов
- 13. Как назначить часть матрицы другой матрице в matlab
- 14. Та же обработка страниц
- 15. Удалите те же подматрицы в большей матрице. Matlab
- 16. Ячейка массива Matlab в java
- 17. Matlab Хаффман Кодирование в матрице
- 18. Выполнение конкатенации в матрице MATLAB
- 19. Matlab: Элементы тега в матрице
- 20. Частота элементов в матрице - Matlab
- 21. Вектор к матрице в matlab
- 22. присвоение координат матрице в MATLAB
- 23. пороговые значения в матрице matlab
- 24. Доступ к матрице в Matlab
- 25. Индексация дубликаты в матрице: Matlab
- 26. matlab - количество вхождений в матрице
- 27. Matlab: найти значение в матрице
- 28. Отбросить элементы в матрице matlab
- 29. найти слова в матрице matlab
- 30. Matlab: Сохранение данных в матрице
Можете ли вы привести примеры того, что вы хотите сделать? – Marcin