Используя функцию в matlab, я получаю сообщение об ошибке: `индексы должны быть либо натуральными положительными целыми числами, либо логическими .` - PullRequest
2 голосов
/ 11 января 2012

Цель следующего кода состоит в том, чтобы построить SNR изображения RGB (ну, код, проиллюстрированный идентификатором для серой шкалы, так как я не мог сделать для RGB, который является конечной целью), а ось Y показывает среднюю ошибку между чистым и шумнымизображение делится на стандартное отклонение чистого изображения (чтобы масштабировать ошибку).Код генерирует ошибку

??? Subscript indices must either be real positive
integers or logicals.

Ошибка в ==> cr_t на 34

varra=var(var(CleanImg_normalized)); 
  1. Пожалуйста, помогите с исправленным кодом, так как я получаю одно значение точка какГрафик вместо линейного графика
  2. Как изменить код для изображений RGB
  3. Есть ли какое-либо значение целого числа, умноженного для вычисления SNR в дБ, я видел 10,20 чисел, наиболее популярныхиспользуемый.

1 Ответ

5 голосов
/ 11 января 2012

Как сказал @Chris, согласно вашему сообщению об ошибке, похоже, что Matlab считает, что var - это переменная. Так что, возможно, вы уже присвоили эту переменную. Для проверки сделайте:

whos var

Если вывод не пустой, это означает, что действительно var назначено.

В этом случае выполните:

clear var

После этого переменная var больше не должна присваиваться. Так что запустите ваш скрипт снова. Однако вы также должны убедиться, что var не назначен во время вашего сценария.

...