Subscript indices must either be real positive integers or logicals 出错
我编写的图像极坐标变换的代码,可是运行结果出错f= imread('3.bmp');
f1=rgb2gray(f);
=size(f1);
for X=1:M
for Y=1:N
=cart2pol(X,Y);
end
end
polar(theta,r);
forr=0:100:500
fortheta=0:pi/6:2*pi
imshow(f1(r,theta));
end
end
运行结果: ??? Subscript indices must either be real positive integers or logicals.
高手们帮帮忙到底哪儿出问题了?
[ 本帖最后由 eight 于 2007-10-22 21:02 编辑 ] 原帖由 zhanghongling 于 2007-10-22 20:38 发表 http://www.chinavib.com/forum/images/common/back.gif
我编写的图像极坐标变换的代码,可是运行结果出错
f= imread('3.bmp');
f1=rgb2gray(f);
=size(f1);
for X=1:M
for Y=1:N
=cart2pol(X,Y);
end
end
polar(theta,r);
f ...
建议楼主先仔细阅读一下版面各个置顶帖,你就能找到解决办法了 我在搜索完相关问题后才发的帖,就是还是没明白到底是怎么回事。能不能麻烦你再说的明白点啊将不甚感激 原帖由 zhanghongling 于 2007-10-22 21:17 发表 http://www.chinavib.com/forum/images/common/back.gif
我在搜索完相关问题后才发的帖,就是还是没明白到底是怎么回事。能不能麻烦你再说的明白点啊将不甚感激
Subscript indices must either be real positive integers or logicals
中文解释:下标索引必须是正整数类型或者逻辑类型
出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。
解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式,可以参见:[转贴]MATLAB代码矢量化指南(译) 可是我不是已经规定了下标的范围了嘛 都是正的啊怎么会出现负的下标这种情况呢这个问题都折磨我好久了 forr=0:100:500
fortheta=0:pi/6:2*pi
imshow(f1(r,theta));
f1 是一个矩阵,你认为上述访问合法吗?像这种问题自己设置断点调试一下马上就找到原因所在了
回复 #6 eight 的帖子
我知道是不合法的,只是不知道该如何合法化。我想把图像3.bmp用极坐标表示出来。想不出来该怎么做 原帖由 zhanghongling 于 2007-10-22 22:54 发表 http://www.chinavib.com/forum/images/common/back.gif我知道是不合法的,只是不知道该如何合法化。我想把图像3.bmp用极坐标表示出来。想不出来该怎么做
建议还是从头开始,认真阅读 matlab 基础书,不然到处碰壁,即使把源程序给你你也许不知道如何运行 好的,谢谢你的建议,也谢谢你的不厌其烦。 原帖由 zhanghongling 于 2007-10-22 21:32 发表 http://www.chinavib.com/forum/images/common/back.gif
可是我不是已经规定了下标的范围了嘛 都是正的啊怎么会出现负的下标这种情况呢这个问题都折磨我好久了
光正数还不行,一定要正整数,或者逻辑类型。版面有关于极坐标的使用例子,请搜索一下
页:
[1]