matlab用C语言写转置矩阵,我要用MATLAB求下面这个矩阵的转置,应该怎么写语句?...

匿名用户

1级

2008-04-08 回答

syms s a1 a2 a3 a4 a5 a6

A=[s -1 0 0;a2 s+a1 0 a6;-1 0 s -1;0 a5 a4 s+a3]

Ainv=inv(A)

结果:

A =

[ s, -1, 0, 0]

[ a2, s+a1, 0, a6]

[ -1, 0, s, -1]

[ 0, a5, a4, s+a3]

Ainv =

[ (s^3+s^2*a3+s*a4+a1*s^2+a1*s*a3+a1*a4-a5*a6*s)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), (s^2+s*a3+a4)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), a6*a4/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), -a6*s/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4)]

[ -(a2*s^2+a2*s*a3+a2*a4-a6*a4)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), s*(s^2+s*a3+a4)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), s*a6*a4/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), -s^2*a6/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4)]

[ (a2*a5+s^2+s*a3+a1*s+a1*a3-a6*a5)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), -(s*a5-s-a3)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), (s^3+s^2*a3+a1*s^2+a1*s*a3-a5*a6*s+a2*s+a2*a3)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), (s^2+a1*s+a2-a6)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4)]

[ (a2*s*a5-s*a4-a1*a4)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), -(s^2*a5+a4)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), -a4*(s^2+a1*s+a2)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4), s*(s^2+a1*s+a2)/(s^4+s^3*a3+s^2*a4+a1*s^3+a1*s^2*a3+s*a1*a4-a5*a6*s^2+a2*s^2+a2*s*a3+a2*a4-a6*a4)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是用C语言实现已知矩阵A和B的转置矩阵的程序: ```c #include <stdio.h> #define ROW 3 #define COL 4 void transpose(int matrix[ROW][COL], int transposeMatrix[COL][ROW]) { int i, j; for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { transposeMatrix[j][i] = matrix[i][j]; } } } int main() { int A[ROW][COL] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; int B[ROW][COL] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}; int AT[COL][ROW], BT[COL][ROW]; int i, j; printf("矩阵A:\n"); for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { printf("%d ", A[i][j]); } printf("\n"); } transpose(A, AT); printf("矩阵A的转置矩阵:\n"); for (i = 0; i < COL; i++) { for (j = 0; j < ROW; j++) { printf("%d ", AT[i][j]); } printf("\n"); } printf("矩阵B:\n"); for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { printf("%d ", B[i][j]); } printf("\n"); } transpose(B, BT); printf("矩阵B的转置矩阵:\n"); for (i = 0; i < COL; i++) { for (j = 0; j < ROW; j++) { printf("%d ", BT[i][j]); } printf("\n"); } return 0; } ``` 这个程序中,我们定义了一个`transpose`函数用于矩阵转置矩阵。`transpose`函数接受两个参数,第一个参数是要转置矩阵,第二个参数是转置后的结果。在`transpose`函数中,我们使用两个循环遍历原矩阵的每个元素,并将其放到转置矩阵的对应位置。 在主函数中,我们定义了两个矩阵A和B,并打印出它们的原始值。然后,我们调用`transpose`函数来它们的转置矩阵,并打印出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值