因为我对Mathematica完全陌生,所以我遇到了以下问题:
我应该在y方向(向上)“飞行”一架无人机,在它撞到位于{0,5}的“障碍物”之前,它应该在x方向上移开。这可行,但现在我应该绘制无人机的“飞行路径”。我尝试使用数组,但我无法绘制它。有人可以帮助我吗?
<form class="navbar-form navbar-left" (ngSubmit)="addProduct()">
<div class="form-group">
<input type="text" class="form-control" Identification"
[(ngModel)]="proName" name="proName"></div>
<div class="form-group">
<input type="text" class="form-control"
[(ngModel)]="proPrice" name="proPrice">
</div>
<div class="form-group" >
<input type="text" class="form-control" name="cat.name"
[(ngModel)]="cat.name " >
</div>
Reap[For[it = 1, it < 11, it++, drone = {0, it};
Sow[drone] If[obstacle == drone + {0, 1},
For[i = 1, i < 11, i++, drone = {i, it}; Sow[drone]]]]]
我知道“For”不是在Mathematica中做到这一点的最好方法,但我已经习惯了其他程序语言。
我用Google搜索了很多不同的方法,(表格,列表等),但没有成功,这是我最接近的解决方案,对我来说是合适的(如果我能够绘制它) 。
编辑:
感谢您的解决方案。得到它的工作!
答案 0 :(得分:1)
你应该在Sow[drone]
和If[obstacle == drone + {0, 1}
之间加一个分号,尽管在这种情况下它仍然有效。以下是一些策划建议。
obstacles = {{0, 5}, {3, 12}};
i = 0;
path = Reap[For[it = 1, it < 21, it++,
drone = {i, it};
Sow[drone];
If[MemberQ[obstacles, drone + {0, 1}],
Do[drone = {i++, it};
Sow[drone], 3]]]][[2, 1]];
plot = Show[ListLinePlot[path, PlotMarkers -> Automatic],
ListPlot[obstacles, PlotStyle -> Red, PlotMarkers -> {Automatic, 12}],
Frame -> True, PlotRangePadding -> {0.6, {1, 2}}, Axes -> False]