У меня есть матрица 100x50. То, что я хочу сделать, это изменить ячейки, имеющие значение> 0 на 0, а ячейки, имеющие значение от 0 до 1. Я знаю его простую, но если кто-нибудь может проконсультироваться, как это сделать без циклов.изменить значения матрицы в Matlab
ответ
iiPos = M>0;
iiZeros = M==0;
M(iiPos) = 0;
M(iiZeros) = 1;
sizeMat = size(mat); % Obtain the size of the matrix
final = zeros(sizeMat); % Create a zero full matrix.
idxZero = find(Mat == 0); % Find where = 0;
final(idxZero) = 1; % switch to 1.
@ Andy, Только для вашей информации, комментарий Matlab - '%'. Мне просто понравилось, потому что пользователь может легко скопировать код в командное окно без ошибок. – Vuwox
вернул редактирование, может занять некоторое время, пока не появится –
Это отличный способ сделать это, используя logical not, если есть только неотрицательные числа:
M =
1 2 0 2
2 1 2 2
0 1 2 1
1 0 1 2
M = ~M;
M =
0 0 1 0
0 0 0 0
1 0 0 0
0 1 0 0
Если у вас есть отрицательные числа, а, затем:
M =
0 -1 0 3
-3 0 -1 0
0 -2 0 1
1 0 -1 1
M(M >= 0) = ~M(M >= 0)
M =
1 -1 1 0
-3 1 -1 1
1 -2 1 0
0 1 -1 0
Почему так сложно?
M = (M == 0);
Для этого нули должны быть точными нулями. Если они только около нуля, используйте
M = (abs(M) < eps);
. Предполагается, что 'M' не может содержать отрицательные значения ... –
@LuisMendo Вопрос указывает, что матрица содержит значения> 0 и значения = 0, ничего больше. Если значения <0, то было бы непонятно, что с ними делать. –
@ADonda Я не вижу, что вопрос действительно определяет это. И, конечно же, в этом случае вы ничего не делаете с этими значениями. ... Но я согласен с вами в том, что идея OP, вероятно, заключается в том, что отрицательных значений нет –
В общем случае с отрицательными числами:
A = A.*(A<0) + (A==0);
. Предполагается, что отрицательные значения должны быть сохранены. –
Ну, если _nothing_ говорят об отрицательных значениях, конечно, они должны быть сохранены! :-) –
Если * ничего не сказано об отрицательных значениях, конечно же их нет! ;-) Думаю, нам придется спросить ОП. –
- 1. Как изменить размер матрицы MatLab
- 2. переформатирования матрицы в MATLAB с нан значения
- 3. Найти значения внутри матрицы matlab
- 4. Перестройка матрицы в matlab
- 5. изменить два столбца матрицы в matlab
- 6. Как изменить размер матрицы в MATLAB?
- 7. Как изменить значения столбцов в matlab
- 8. копирование матрицы на основе другого значения матрицы в MATLAB
- 9. Оператор матрицы матрицы в Matlab
- 10. сортировка матрицы в MATLAB
- 11. Как изменить значения матрицы на значения из другой матрицы - Wolfram
- 12. Проверка матрицы матрицы Matlab
- 13. Строение матрицы матрицы matlab
- 14. Изменение матрицы в matlab
- 15. Черепица матрицы в MATLAB
- 16. Matlab: изменить каждый куб 3D-матрицы клеток
- 17. Matlab - Матричные дифференциальные уравнения [Обновить значения матрицы? ]
- 18. Matlab присваивает значения определенным элементам матрицы
- 19. удалите строки матрицы в matlab
- 20. Сохранение значений матрицы в MATLAB
- 21. Фильтрующие матрицы в MATLAB
- 22. Сортировка матрицы в MATLAB
- 23. RREF матрицы в MatLab
- 24. Контурные матрицы в MATLAB
- 25. Матрицы в Matlab
- 26. Матрица матрицы в Matlab?
- 27. Решение матрицы в MATLAB?
- 28. Преобразование матрицы в MATLAB
- 29. преобразования матрицы в MatLab
- 30. matlab эффективное копирование матрицы
Что делать с отрицательными значениями? Или нет? –