В версиях MATLAB, начиная с 2009b, вы можете использовать тильду (~
) , чтобы игнорировать выходные данные, которые вам не нужны . Если он выдает ошибку, это означает, что ваша версия не поддерживает это использование тильды, и вы должны заменить его на фиктивное имя переменной следующим образом:
[M N dummy] = size(imge);
Как объясняет Сумона, M будет содержать число или строки в изображении, а N - количество столбцов; фиктивная будет 1 (для одного черно-белого изображения), 3 (для одного цветного изображения) или произвольное целое число (для стека изображений).
Обычно имеет смысл использовать тильду, если есть другие параметры, которые вас потом интересуют. size
здесь исключение в том смысле, что он проверяет (используя nargout
), сколько выводов он должен произвести, и соответственно изменяет свое поведение, , как описано здесь.
То есть
test = zeros(3,4,5);
[M N dummy] = size(test);
дает M = 3, N = 4, как и следовало ожидать, но
test = zeros(3,4,5);
[M N] = size(test);
производит М = 3, N = 20.
В вашем конкретном случае я предполагаю, что imge
- это стек изображений, и программист хотел выяснить размер отдельных изображений, но не их количество.