У меня есть два изображения geotiff (с надписью «A» и «B»), импортированные в Matlab как матрицы с Geotiffread
. У одного разные значения, а у второго только 0 и 255с. Что я хотел бы сделать, так это заменить все 255 значениями внутри другого изображения (или матрицы) в соответствии с их позициями. А и В различаются по размеру, но имеют одинаковые проекции.
Я пробовал это:
A (A== 255)= B;
вывод - ошибка:
??? In an assignment A(:) = B, the number of elements in A and B must be the same.
В противном случае я также попытался с логическим подходом:
if A== 255
A= B;
end
и ничего не происходит.
Есть ли способ заменить значения A значениями B в соответствии с конкретным значением и положением в указанном пространстве?
A(A==255) = B(A==255)
. Ошибка говорит вам, что когда вы пытаетесь присвоить значения элементам массива, вы не можете присвоить ему больше или меньше значений, чем вы пытаетесь присвоить. Кроме того, в отношении оператора if: я считаю, чтоif A==255
означает то же, что иif all(A==255)
, например, если какие-либо элементыA
не являются255
, возвращается false. Вы можете проверить это в командной строке. - person darthbith   schedule 08.01.2014