4个列表 取相同索引的元素 组合成新的数组
时间: 2024-05-15 19:19:50 浏览: 80
假设有四个列表 a, b, c, d,它们的长度相同,要将它们的相同索引的元素组合成一个新的数组,可以使用以下代码:
```python
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
d = [10, 11, 12]
result = []
for i in range(len(a)):
temp = [a[i], b[i], c[i], d[i]]
result.append(temp)
print(result) # 输出:[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
```
在这个代码中,我们使用了一个循环来遍历四个列表的元素,然后将相同索引的元素组合成一个新的列表 temp,最后将这个列表添加到结果列表 result 中。最终得到的 result 就是我们想要的结果。
相关问题
matlab绘制二维图像中的两个二维数组相同行的两个元素短线连接
在MATLAB中,你可以使用`plot()`函数结合`unique()`和`accumarray()`来绘制二维数组中相同行的两个元素之间的连线。假设你有两个二维数组`X`和`Y`,它们有相同的行数,你想将每行的第一个元素与第二个元素连接起来,可以这样做:
```matlab
% 假设 X 和 Y 是这样的:
% X = [x1 y1; x2 y2; ...]; % 行向量的每个元素对应 (x, y) 对
% Y = [y1 z1; y2 z2; ...];
% 提取每行的前两个元素
[row_idx, col_idx] = find(1:2:end); % 找到偶数索引的位置(即第一个和第三个元素)
% 使用 unique() 函数找到唯一的行索引
[~, unique_rows] = unique(row_idx);
% 使用 accumarray() 将对应的列值组合成新的矩阵
connections_X = accumarray(row_idx, X(:, col_idx), [], @(x) {x});
connections_Y = accumarray(col_idx, Y(unique_rows,:), [], @(x) {x});
% 现在 connections_X 和 connections_Y 是两个包含{(x1,y1),(x2,z2),...}对的矩阵
% 绘制连线
hold on
for i = 1:size(unique_rows, 1)
plot([connections_X{i}{1} connections_Y{i}{1}], [connections_X{i}{2} connections_Y{i}{2}], '-');
end
hold off
% 添加图例说明等其他定制
legend('X', 'Y');
xlabel('X轴');
ylabel('Y轴');
title('二维数组连线图');
阅读全文