MATLAB编程怎样去掉矩阵里的一行一列形成新矩阵

MATLAB编程怎样去掉矩阵里的一行一列形成新矩阵,第1张

>> A=[1,2,3;4,5,6;7,8,9]

A =

1     2     3

4     5     6

7     8     9

删除行:

>> A(2,:)=[]

A =

1     2     3

7     8     9

删除列:

>> A(:,2)=[]

A =

1     3

7     9

扩展资料:

MATLAB的使用

在Matlab中可以对矩阵进行任意 *** 作,包括改变它的形式,取出子矩阵,扩充矩阵,旋转矩阵等.其中最重要的 *** 作符为“:”, 它的作用是取出选定的行与列.

例如:

A(:,:) 代表A的所有元素;试比较A(:),将A按列的方向拉成长长的1列(向量);

A(:,J) 代表A的第J列;

A(J:K) 代表 A(J), A(J+1), …, A(K),如同A(:)的第J到第K个元素;

A(:,J:K) 代表A(:,J), A(:,J+1), …, A(:,K),如此类推

对矩阵可以进行各种各样的旋转、变形、扩充:

矩阵的转置用符号“ ' ”表示:

如A=[1  2  3;  4  5  6 ;  7  8  0]

那么:计算B=A'

B =

1    4     7

2    5     8

3    6     0

符号“ ' ”为矩阵的转置,如果Z为复矩阵,则Z'为它的复数共轭转置,非共轭转置使用Z' 或conj(Z')求得.

可以用定义数组的命令

cells(m,n)

定义的是mn维的矩阵

也可以直接定义矩阵 比如定义一个3×3的矩阵

A=(x11,x12,x13;x21,x22,x23;x31,x32,x33)

i=i+1;

j=j+1;

你这样写i一直等于j,也就是你改变的对角线元素的值,如果对整个矩阵进行 *** 作,应改为

m=[0

0

0

0;0

0

0

1;0

0

1

0;0

0

1

1;0

1

0

0;0

1

0

1;0

1

1

0;0

1

1

1;1

0

0

0;1

0

0

1;1

0

1

0;1

0

1

1;1

1

0

0;1

1

0

1;1

1

1

0;1

1

1

1];

g=[1

0

0

1

1

1

0

1

1

1;1

1

1

0

0

0

1

1

1

0;0

1

1

0

1

1

0

1

0

1;1

1

0

1

1

1

1

0

0

1];

c=mg;

for

i=1:16

for

j=1:10

if(c(i,j)==1||c(i,j)==3)

c(i,j)=1;

elseif(c(i,j)==0||c(i,j)==2)

c(i,j)=0;

end

end

end

因为这个matlab程序调用了mesh函数,它需要3个参数都是size一样的矩阵,哪怕矩阵里的内容都是常数,因为前两个参数提供了一个面的东西方向坐标和南北坐标,还差第三个坐标提供垂直方向坐标。

官方的帮助

这个代码是写电工学的还是复变函数的,这个代码风格我觉得十分……眼熟故我修改查找错误,首先

出错在49-52

错误在代码的第49-52行det函数求的是矩阵的行列式值,结果是个1x1的常数,而非矩阵;而abs是求复数a+bi的模a²+b²的,以及实数的绝对值;故D,F,q1都不是矩阵,因而后面的mesh函数自然也是要跑不了的。

如果只是要修改以运行,可以这么改,即在把mesh语句改成h=mesh(x,t,z+zeros(size(x)))即可(但是这个图肯定不符合要求,具体怎么改还要等我恶补一下电工学)

以上就是关于MATLAB编程怎样去掉矩阵里的一行一列形成新矩阵全部的内容,包括:MATLAB编程怎样去掉矩阵里的一行一列形成新矩阵、matlab定义一个矩阵、matlab怎么输出矩阵等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9727248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存