数组转置是将矩阵的行列互换得到的新矩阵称为转置矩阵,转置矩阵的行列式不变。
由定义可知,A为M乘N矩阵,则 A的转置为N乘M矩阵。
运算法则:
A的转置的转置等于A。A加B转置等于A的转置加B的转置。K倍A的转置等于K乘A的转置。A乘B的转置等于B的转置乘A的转置。vb中 数组转置是什么意思~~
1 2 3 1 4 7
4 5 6 转置后: 2 5 8
7 8 9 3 6 9
代码示例:
Private Sub Form_Load()Me.Show
Dim A(2, 2) As Long, B(2, 2) As Long
Dim I As Long, J As Long, N As Long
'------------------------------A 数组赋值
For I = 0 To 2
For J = 0 To 2
N = N + 1
A(I, J) = N
Next
Next
'-------------------------------A 数组输出
Print "转置前:"
For I = 0 To 2
For J = 0 To 2
Print A(I, J)
Next
Next
'-------------------------------A 数组转置后放到 B 数组
For I = 0 To 2
For J = 0 To 2
B(J, I) = A(I, J)
Next
Next
'--------------------------------B 数组输出
Print "转置后:"
For I = 0 To 2
For J = 0 To 2
Print B(I, J)
Next
Next
End Sub
什么是数组转置
#define X_max 20//定义数组的最大可以转置范围
#define Y_max 20
//数组输出函数
void output(int Array[][Y_max], int x, int y)//二维数组做形参,应该带列下标,而且要与定义时大小相同
{
int i, j
for(i=0i<xi++)
{
for(j=0j<yj++)
{
printf("%d ", Array[i][j])
}
printf("\r\n")
}
}
//矩阵转置函数
void transpose( int a[][Y_max], int x, int y)//同样注意二维数组下标
{
int i, j
int temp
for(i=0i<xi++)
{
for(j=i+1j<yj++)//关键句
{
temp=a[i][j]
a[i][j]=a[j][i]
a[j][i]=temp
}
}
output(a, y, x)//调用输出数组函数
}
void main()
{
int i, j
int x, y
int array[X_max][Y_max]=//定义数组,注意要初始化
printf("请输入数组的行数和列数,用逗号隔开\r\n")
scanf("%d,%d", &x, &y)
if(x >X_max &&y >Y_max)
{
printf("待转置数组过大,本程序不能满足要求\r\n")
return
}
else
{
printf("请输入数组元素\r\n")
for(i=0i<xi++)
{
for(j=0j<yj++)
{
scanf("%d", &array[i][j])
}
}
}
printf("输出待转置二维数组\r\n")
output(array, x, y)
printf("输出转置后二维数组\r\n")
transpose(array, x, y)
}
excel中如何数组的转置
数组内容转置可以通过
选择性粘贴
功能来实现。
1、首先复制需要被转置的数组内容
2、任意选择单元格位置,右键点击
选择性粘贴
3、在弹出的对话框中选取右下方的
转置按钮
即可。
通过上述过程即可实现数组的转置功能。
见附图:
转置结果
c语言数组转置
//try it 试试看
#include <stdio.h>
void transpose( int a[6][6],int n)
{
int i,j,temp
for(i=0i<ni++)
for (j=0j<ij++)
{temp=a[i][j]a[i][j]=a[j][i]a[j][i]=temp}
}
void main()
{
int i,j,a[6][6],n
printf("please input the 维度<1-6>:")
scanf("%d",&n)
printf("请输入数组元素:\n")
for (i=0i<ni++)
for(j=0j<nj++)
scanf("%d",&a[i][j])
transpose(a,n)
printf("操作后的数组为:\n")
for (i=0i<ni++)
{
for(j=0j<nj++)
printf("%d ",a[i][j])printf("\n")
}