9
A
回答
22
我记得写这个。我觉得对于一个矩形矩阵你需要一些小的改动和一个多线难以理解的废话:
#include <stdio.h>
int main()
{
int x[3][4] = { 1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12};
int m = 3;
int n = 4;
for (int slice = 0; slice < m + n - 1; ++slice) {
printf("Slice %d: ", slice);
int z1 = slice < n ? 0 : slice - n + 1;
int z2 = slice < m ? 0 : slice - m + 1;
for (int j = slice - z2; j >= z1; --j) {
printf("%d ", x[j][slice - j]);
}
printf("\n");
}
return 0;
}
输出:
Slice 0: 1
Slice 1: 5 2
Slice 2: 9 6 3
Slice 3: 10 7 4
Slice 4: 11 8
Slice 5: 12
简单说明它是如何工作的,每片为对角从第一列开始,沿对角线向右上并在第一行结束(最初左下,但现在由于海报的评论而交换)。
z2表示在打印第一个数字之前必须跳过多少个项目。这对于前m个切片为零,然后对于每个剩余切片增加1个。 z1是最后应该跳过多少项目,再次从头开始m片开始为0,剩下的片开始增加1。
相关问题
- 1. 对角线反映矩阵
- 2. 如何使矩阵的对角线等于另一个矩阵的对角线?
- 3. 矩阵的矩阵对角元素
- 4. 从MATLAB矩阵阵列创建对角线矩阵
- 5. 从矩阵的一半创建对角线矩阵
- 6. 主对角线矩阵的总和JAVA
- 7. 用Mathematica更改矩阵的对角线
- 8. 打印对角线的矩阵
- 9. 矩阵具有相同的对角线
- 10. 替换矩阵的对角线
- 11. 更改矩阵数组的对角线
- 12. 矩阵列表的块对角线
- 13. 熊猫:填充矩阵对角线
- 14. 任务矩阵和对角线c
- 15. 如何排序矩阵对角线
- 16. 如何在MATLAB中重新对角矩阵的对角线?
- 17. 什么是将矩阵矩阵转换为三角形条的快速算法?
- 18. 圆角矩形虚线
- 19. 矩阵线圈(蛇形)
- 20. opencv的确定4条最外角线从矩形对象
- 21. 复对称三对角矩阵的快速矩阵指数
- 22. glCompressedTexImage2D矩形纹理
- 23. Mathematica矩阵对角化
- 24. 块三对角矩阵python
- 25. pygame的角度球(矩形)和矩形
- 26. 在线性表示中获得方矩阵的主对角线
- 27. CUDA中非矩形矩阵的计算机逆矩阵
- 28. RLE寻找矩阵矩形
- 29. numpy矩阵中的绝对非对角线差异总和
- 30. 使用scipy.sparse的三角形块矩阵
是的,这就是我想要的。但是... 我真正需要的是反对角条中的横向矩形矩阵。 :)我试着在给出的矩阵矩阵的答案中交换指数,我认为我可以在这里应用相同的原则 - 交换指数,并获得反对角线遍历。但是,对于矩形矩阵它不起作用。那么,我现在应该问一个更多的问题来进行反对角矩形遍历吗? 感谢您的回答:) – misaizdaleka 2010-01-21 21:38:51
我不完全确定你的意思是反对角线。更新你的问题会有所帮助。我认为当你读取数组值时,你需要做的是翻转y坐标,但是保持x不变,即'x [m-j-1] [slice -j]'而不是'x [j] [slice - J]'。这给了[9],[10,5],[11,6,1]等......这就是你想要的吗? – 2010-01-21 21:43:53
对不起,我的错误再次......我不是很确切。不,我需要相同的遍历,但不会像[1],[2,5],[3,6,9],但像[1],[5,2],[9,6,3],再次感谢。 – misaizdaleka 2010-01-21 21:46:44