使用嵌套的while循环绘制布尔矩阵

时间:2019-01-31 17:02:57

标签: python

我目前正在研究控制机器人在田野中导航的软件。我创建了一个0x和1的96x96矩阵,以表示当前我的机器人在该区域内的位置。为了帮助解决问题/建模,我创建了一个函数,该函数使用嵌套的while循环在图形上绘制所有1。机器人是8x8,因此它应该在我的绘图的右下角显示为8x8。而是在y轴上显示为垂直线0-7。

#-------------------------------------------------
#Desc: shows 96x96 matrix
def plotMatrix(matrix):
    i = 0 # row count
    j = 0 # column count   
    # cycle through rows->columns to plot values
    while i < 96: # 96 is array size
        while j <96:
            if matrix[i][j] == 1:
                plt.plot(i,j,'ro')
            j = j + 1
        i = i + 1
    plt.axis([0,95,0,95])
    plt.grid([0,95,9,95])
    plt.show()
#------------------------------------------------- 

显示了一个96x96图形,y轴上填充了0-7。它应该产生这个,但是在x轴上对1,2,3,4,5,6,7镜像为0-7。

1 个答案:

答案 0 :(得分:0)

您可以为空网格初始化 Retrofit retrofit = new Retrofit.Builder() .baseUrl(APIService.HOST) .addConverterFactory(GsonConverterFactory .create()) .build(); APIService apiService = retrofit.create(APIService.class); Call<List<Meteo>> call = apiService.getMeteo(44); call.enqueue(new Callback<List<Meteo>>() { @Override public void onResponse(Call<List<Meteo>> call, Response<List<Meteo>> response) { MeteoAdapter adapter = new MeteoAdapter(response.body()); // Method show just shows list of weather data getViewState().show(adapter); } @Override public void onFailure(Call<List<Meteo>> call, Throwable t) { Log.d("MyLog", "WRONG"); } }); 数组,如下所示:

numpy

然后您可以创建一个机器人:

import numpy as np

grid = np.zeros((96, 96))

然后,您可以通过将其广播到网格中来确定机器人的起点

robot = np.ones((8, 8))

希望您能看到它的构建方式,并将其用作跳出点以允许您移动机器人等。这是以左上角为机器人和网格的参考放置机器人,但是您可以很容易地解决这个问题。

希望这很有帮助