使用matlab中的函数,我得到错误`索引必须是真正的正整数或逻辑

use*_*671 2 matlab image-processing matrix

下面代码的目的是绘制RGB图像的SNR(嗯,代码图示为灰度等级,因为我不能做RGB最终目标)和y axix绘制干净和噪声图像之间的平均误差除以清洁图像的标准偏差(为了缩放误差).代码生成错误

??? Subscript indices must either be real positive
integers or logicals.
Run Code Online (Sandbox Code Playgroud)

34 = =>> cr_t时出错

varra=var(var(CleanImg_normalized)); 
Run Code Online (Sandbox Code Playgroud)
  1. 请帮助纠正代码,因为我得到一个点作为一个点而不是一个线图
  2. 如何修改RGB图像的代码
  3. 在db中计算SNR的整数是否有任何显着性,我已经看到了最常用的10,20个数字.

Oli*_*Oli 5

正如@Chris所说,根据你的错误信息,似乎matlab认为这var是一个变量.所以也许你已经分配了这个变量.检查一下:

whos var
Run Code Online (Sandbox Code Playgroud)

如果输出不为空,则表示确实var已分配.

在这种情况下,做:

clear var
Run Code Online (Sandbox Code Playgroud)

之后,var不应再分配变量.所以再次运行你的脚本.但是,您还应检查var脚本中未分配的内容.