更新一个for循环,if语句

1视图(30天)
玩家
玩家 2021年6月14日
回答: 郑宇硕 2021年6月14日
你好,社区,
谢谢你想帮助我。我将会很高兴如果这将工作。
首先我创建了n 15 x 7.5领域的球体。他们应该移动的速度v,这始终是减少0.001
现在用力推的问题:怎么可能改变方向(v -)的元素时,球体边界。我试着这样但它只改变了方向“时刻”
一个= 15;
b = 7.5;
p = [r + r (a *) *兰德(n, 1), r + (b - 2 * r) *兰德(n, 1)];
v =兰德(n, 2);
f = 1:1000
temp = v - 0.001;
临时(临时< 0.001)= 0;
v = temp;
如果~任何(v (:))
打破
结束
p = p + v;
i = 1: n
%检查球击中边界
如果(p (i, 1) < = r)
p (i, 1) = r;v(我,1)= - v(我,1);%的新方向的速度
结束%不幸的是只有一个时刻
如果(p (i, 1) > =(一个r))
p (i, 1) =(一个r);v(我,1)= - v(我,1);
结束
如果(p (i, 2) < = r)
p (i, 2) = r;v(我,2)= - v(我,2);
结束
如果(p (i, 2) > = (b-r))
p (i, 2) = (b-r);v(我,2)= - v(我,2);
结束
结束
结束

接受的答案

郑宇硕
郑宇硕 2021年6月14日
没有运行您的代码,我认为你可以创建一个标志变量(1)^(0或1),交换机之间根据当它击中0或1。然后你继续使用该值。这也将给你一个变量变化的信号添加或减去速度慢下来。

更多的答案(0)

类别

找到更多的在创建和连接矩阵帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!