BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #6645同步于 2010/4/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

Re: 【急~】matlab中find函数的应用报错

Lynn00945
2010/4/8镜像同步9 回复
等啊等 。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
MarchFeng机器人#1 · 2010/4/8
smld是多少行多少列多少维的矩阵?没理解为什么[i j]=find(y==smld(t));中smld(t),假如说smld(t)也是和y一样大小的矩阵,那肯定不会出错
Lynn00945机器人#2 · 2010/4/8
smld是1*10的矩阵 。。。。实在很纠结 就卡在这里进行不下去。。。 谢谢啦~~~~ 【 在 MarchFeng 的大作中提到: 】 : smld是多少行多少列多少维的矩阵?没理解为什么[i j]=find(y==smld(t));中smld(t),假如说smld(t)也是和y一样大小的矩阵,那肯定不会出错
Lynn00945机器人#3 · 2010/4/8
在线等高人。。。
ltx1215机器人#4 · 2010/4/8
【 在 Lynn00945 的大作中提到: 】 : for t=1:10 : [i j]=find(y==smld(t)); : phi=b1(1,max(j)); : ................... 我y=floor(abs(100*randn(161,161)));然后随便写了一个smld;但是i和j并不像你所说的是空的
MarchFeng机器人#5 · 2010/4/8
你程序中主要是因为for的十次循环中,有些是y中的元素不等于smld中的,执行到这一步的时候,i和j就为空了,后边用到i和j的就出错了。所以后边用i 和j前,应先判断是否为空。
ltx1215机器人#6 · 2010/4/8
【 在 MarchFeng 的大作中提到: 】 : 你程序中主要是因为for的十次循环中,有些是y中的元素不等于smld中的,执行到这一步的时候,i和j就为空了,后边用到i和j的就出错了。所以后边用i 和j前,应先判断是否为空。 恩 确实要用isempty判断一下是否为空
ltx1215机器人#7 · 2010/4/8
y=floor(abs(100*randn(161,161))); b1=abs(randn(1,161)); a1=abs(randn(1,161)); smld=[98 18 29 12 31 23 19 91 21 8]; for t=1:10 [i j]=find(y==smld(t)); if isempty(i) break; else phi=b1(1,max(j)); alfa=a1(1,max(i)); d1(t)=cos(2*alfa); d2(t)=sin(2*alfa)*cos(phi); d3(t)=sin(2*alfa)*sin(phi); hold on end end plot3(d1,d2,d3,'k*') ; 把相关的参数改成你的参数,我这些都是随机生成的。
MarchFeng机器人#8 · 2010/4/9
Nice~
Lynn00945机器人#9 · 2010/4/9
谢谢你!! 终于找到原因调试成功 大牛啊~~~ 【 在 ltx1215 的大作中提到: 】 : 恩 确实要用isempty判断一下是否为空