this_coords1: [7857, 4],this_coords2: [7857, 4],怎么合并成this_coords3: [15714, 4]
时间: 2024-01-02 22:01:44 浏览: 60
可以使用numpy的add函数来实现数组的相加操作,将this_coords1和this_coords2相加即可得到this_coords3。
具体的实现代码如下:
```
import numpy as np
this_coords1 = np.array([7857, 4])
this_coords2 = np.array([7857, 4])
this_coords3 = np.add(this_coords1, this_coords2)
print(this_coords3)
```
运行结果为:
```
[15714 8]
```
需要注意的是,这里使用的是numpy数组,如果是普通的列表需要手动遍历每个元素进行相加。
相关问题
voxel_grid[voxel_coords[:, 0], voxel_coords[:, 1], voxel_coords[:, 2]] = True有定义的数组吗
在这个代码行中,`voxel_grid`是一个Numpy数组,但是在你的问题中,它没有被定义。在这里,我们可以假设它已经被定义为一个三维布尔数组,大小为`(x, y, z)`,表示一个立方体网格。`voxel_coords`是一个大小为`(n, 3)`的Numpy数组,其中每一行都包含三个整数,表示在立方体网格中的一个点的坐标。这一行代码的作用是将`voxel_coords`中的每个点在`voxel_grid`中的位置标记为`True`。具体地说,对于`voxel_coords`中的每一行,它的前三个元素分别表示该点在`voxel_grid`中的x、y、z坐标。代码行中使用了Numpy的花式索引,将`voxel_coords`中所有点的x坐标组成的一维数组作为第一个索引,y坐标组成的一维数组作为第二个索引,z坐标组成的一维数组作为第三个索引。这样就可以同时将所有点的位置在`voxel_grid`中标记为`True`。
将下面一段matlab代码转换为python代码(function point_bridge1 = zuobiao_qiao(global_coords,juli_qiaoche) %UNTITLED5 用于将桥梁绝对坐标转换为相对坐标 % 此处显示详细说明 local_coords(:,1) = global_coords(:,1) - global_coords(1,1); local_coords(:,2) = global_coords(:,2) - global_coords(1,2); % 计算1点和4点的连线向量 v = local_coords(2,:) - local_coords(1,:); % 计算旋转角度 theta = -atan2(v(2), v(1)); R = [cos(theta) -sin(theta); sin(theta) cos(theta)]; rotated_point = local_coords(:,:) * R; point_bridge1(:,1) = rotated_point (:,1) point_bridge1(1,2) = rotated_point(1,2)-juli_qiaoche(1); point_bridge1(2,2) = rotated_point(2,2)+juli_qiaoche(2); point_bridge1(3,2) = rotated_point(3,2)+juli_qiaoche(3); point_bridge1(4,2) = rotated_point(4,2)-juli_qiaoche(4); point_bridge1(:,2) = point_bridge1(:,2) - point_bridge1(1,2); end)
以下是将 MATLAB 代码转换为 Python 代码后的结果:
```python
import numpy as np
def zuobiao_qiao(global_coords, juli_qiaoche):
local_coords = np.zeros_like(global_coords)
local_coords[:, 0] = global_coords[:, 0] - global_coords[0, 0]
local_coords[:, 1] = global_coords[:, 1] - global_coords[0, 1]
v = local_coords[1, :] - local_coords[0, :]
theta = -np.arctan2(v[1], v[0])
R = np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]])
rotated_point = np.dot(local_coords, R)
point_bridge1 = np.zeros((4, 2))
point_bridge1[:, 0] = rotated_point[:, 0]
point_bridge1[0, 1] = rotated_point[0, 1] - juli_qiaoche[0]
point_bridge1[1, 1] = rotated_point[1, 1] + juli_qiaoche[1]
point_bridge1[2, 1] = rotated_point[2, 1] + juli_qiaoche[2]
point_bridge1[3, 1] = rotated_point[3, 1] - juli_qiaoche[3]
point_bridge1[:, 1] = point_bridge1[:, 1] - point_bridge1[0, 1]
return point_bridge1
```
请注意,这里使用的是 NumPy 库中的矩阵运算,因此需要将输入的数组转换为 NumPy 数组。此外,由于 Python 中的索引从 0 开始,因此在 Python 代码中需要将索引减去 1。
阅读全文