声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 8569|回复: 9

[编程技巧] Subscript indices must either be real positive integers or logicals 出错

[复制链接]
发表于 2007-10-22 20:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我编写的图像极坐标变换的代码,可是运行结果出错
f= imread('3.bmp');
f1=rgb2gray(f);
[M,N]=size(f1);
for X=1:M
    for Y=1:N
        [theta,r]=cart2pol(X,Y);
    end
end
polar(theta,r);
for  r=0:100:500
    for  theta=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 编辑 ]

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2007-10-22 21:02 | 显示全部楼层
原帖由 zhanghongling 于 2007-10-22 20:38 发表
我编写的图像极坐标变换的代码,可是运行结果出错
f= imread('3.bmp');
f1=rgb2gray(f);
[M,N]=size(f1);
for X=1:M
    for Y=1:N
        [theta,r]=cart2pol(X,Y);
    end
end
polar(theta,r);
f ...


建议楼主先仔细阅读一下版面各个置顶帖,你就能找到解决办法了
 楼主| 发表于 2007-10-22 21:17 | 显示全部楼层
我在搜索完相关问题后才发的帖,就是还是没明白到底是怎么回事。能不能麻烦你再说的明白点啊  将不甚感激
发表于 2007-10-22 21:22 | 显示全部楼层
原帖由 zhanghongling 于 2007-10-22 21:17 发表
我在搜索完相关问题后才发的帖,就是还是没明白到底是怎么回事。能不能麻烦你再说的明白点啊  将不甚感激



Subscript indices must either be real positive integers or logicals

中文解释:
下标索引必须是正整数类型或者逻辑类型

出错原因:在访问矩阵(包括向量、二维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语言的习惯不一样。

解决办法:自己调试一下程序,把下标为 0 或者负数的地方修正。关于矩阵的各种访问方式,可以参见:[转贴]MATLAB代码矢量化指南(译)
 楼主| 发表于 2007-10-22 21:32 | 显示全部楼层
可是我不是已经规定了下标的范围了嘛   都是正的啊  怎么会出现负的下标这种情况呢  这个问题都折磨我好久了
发表于 2007-10-22 22:18 | 显示全部楼层
for  r=0:100:500
    for  theta=0:pi/6:2*pi
        imshow(f1(r,theta));


f1 是一个矩阵,你认为上述访问合法吗?像这种问题自己设置断点调试一下马上就找到原因所在了
 楼主| 发表于 2007-10-22 22:54 | 显示全部楼层

回复 #6 eight 的帖子

我知道是不合法的,只是不知道该如何合法化。我想把图像3.bmp用极坐标表示出来。想不出来该怎么做
发表于 2007-10-23 09:22 | 显示全部楼层
原帖由 zhanghongling 于 2007-10-22 22:54 发表
我知道是不合法的,只是不知道该如何合法化。我想把图像3.bmp用极坐标表示出来。想不出来该怎么做


建议还是从头开始,认真阅读 matlab 基础书,不然到处碰壁,即使把源程序给你你也许不知道如何运行
 楼主| 发表于 2007-10-23 10:37 | 显示全部楼层
好的,谢谢你的建议,也谢谢你的不厌其烦。
发表于 2007-10-23 12:45 | 显示全部楼层
原帖由 zhanghongling 于 2007-10-22 21:32 发表
可是我不是已经规定了下标的范围了嘛   都是正的啊  怎么会出现负的下标这种情况呢  这个问题都折磨我好久了


光正数还不行,一定要正整数,或者逻辑类型。版面有关于极坐标的使用例子,请搜索一下

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 23:22 , Processed in 0.062910 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表