查看: 206|回复: 6|关注: 0

[已解决] sign

[复制链接]

新手

11 麦片

财富积分


050


4

主题

18

帖子

0

最佳答案
求解这个问题!!
CQD4Y]5HAX0@3}1HXFJM6IK.png

论坛优秀回答者

中级

1113 麦片

财富积分


5001500


2

主题

898

帖子

189

最佳答案
  • 关注者: 25
发表于 2019-7-8 20:08:11 | 显示全部楼层 |此回复为最佳答案
数组里面的索引必须是正整数,比如 1 2 3....
rand出来是0~ 1的小数。
建议如下修改:
r2 = floor(r1 * 100);  %将r1放大100倍,向下取整,然后和5相比
if r2 <= 5
....
else
.....
end

新手

11 麦片

财富积分


050


4

主题

18

帖子

0

最佳答案
 楼主| 发表于 2019-7-8 20:11:44 | 显示全部楼层
TCCMATLAB 发表于 2019-7-8 20:08
数组里面的索引必须是正整数,比如 1 2 3....
rand出来是0~ 1的小数。
建议如下修改:

必须是整数的话。r2=int(r1*100);这样???

论坛优秀回答者

中级

1113 麦片

财富积分


5001500


2

主题

898

帖子

189

最佳答案
  • 关注者: 25
发表于 2019-7-8 20:14:03 | 显示全部楼层
罗差不多 发表于 2019-7-8 20:11
必须是整数的话。r2=int(r1*100);这样???

都行的。
但是MATLAB里面没有int函数,需要使用int8(r1 * 100).

或者你直接使用 randi(100)  就能生成1~100的整数。

新手

11 麦片

财富积分


050


4

主题

18

帖子

0

最佳答案
 楼主| 发表于 2019-7-8 20:16:40 | 显示全部楼层
TCCMATLAB 发表于 2019-7-8 20:08
数组里面的索引必须是正整数,比如 1 2 3....
rand出来是0~ 1的小数。
建议如下修改:

还是不可以呀。也是一样的报错。

论坛优秀回答者

中级

1113 麦片

财富积分


5001500


2

主题

898

帖子

189

最佳答案
  • 关注者: 25
发表于 2019-7-8 20:23:06 | 显示全部楼层
罗差不多 发表于 2019-7-8 20:16
还是不可以呀。也是一样的报错。

可否贴出报错信息。
我尝试了以下代码,可以正常运行:

>> a = zeros(100);
>> a(randi(100))

ans =

     0

新手

11 麦片

财富积分


050


4

主题

18

帖子

0

最佳答案
 楼主| 发表于 2019-7-8 20:25:50 | 显示全部楼层
TCCMATLAB 发表于 2019-7-8 20:23
可否贴出报错信息。
我尝试了以下代码,可以正常运行:

刚刚打错了。:L可以啦。。谢谢前辈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

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