matlab程序问题,很简单的,但是出错,求助!

假设R是radon变换后的频谱图,角度是0到90度,xp是y轴的值ma=max(xp);fori=1:90ifR(ma,i)==mamyAngle=i;endenddis... 假设R是radon变换后的频谱图,角度是0到90度,xp是y轴的值
ma = max(xp);
for i=1:90

if R(ma,i)==ma
myAngle=i;
end
end

disp(['angle=',num2str(myAngle)]);
我的意思是先求出y轴上的最大值,然后看这个最大值在x轴上的位置,赋给myAngle。但是求出的结果总是0,不明白了
我看过workspace,然后ma是214,
而且ma是y轴上的最大值,那么它必然在R(ma,:)里啊。
在R(ma,i)里,ma是作为行坐标,右边的ma是作为最大值。
觉得没什么问题啊。。。

这个radon变换是用matlab里的函数做的,结果应该没问题,它是一个429*91的矩阵,
而且y轴是连续的,这是一个坐标图,为什么ma不可以作为行坐标呢?

哈哈,终于出来了。结果是
angle=40
k=429
角度一点不差
太感谢了! 不过还是不明白,y轴式连续的,而且值和轴上的坐标应该是一对一的,为什么不可能了呢
不管了额
展开
 我来答
aronk_
2010-05-23 · TA获得超过532个赞
知道小有建树答主
回答量:121
采纳率:100%
帮助的人:199万
展开全部
if R(ma,i)==ma这句里面ma是否应该换成点到原点的距离?
总之你这句看起来很怪,为0估计还是你R(ma,:)里头没有等于ma的值,对着workspace再检查下这句

1"一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa)就是函数f的Radon变换" 好像你的R和公式不太一样。
2 max()返回的ma是y轴最大值,但是不是最大值所在的行数啊,不能做为行坐标吧,这个点鸡和蛋的意思。不如你再弄个X轴的循环先找找看有没有ma值

按你的意思ma=max(xp);返回的ma值既为最大值的所在的行坐标,同时又为最大值?这不可能。。或者你用find函数:k=find(xp==ma);返回的k才是最大值所在的行坐标
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式