Имам две geotiff изображения (казващи "A" и "B"), импортирани в Matlab като матрици с Geotiffread
. Единият има различни стойности, докато вторият има само 0 и 255s. Това, което бих искал да направя, е да заменя всички 255 със стойностите в другото изображение (или матрица), според техните позиции. A и B се различават по размер, но имат еднакви проекции.
Опитах това:
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