yhkn.net
当前位置:首页 >> mAtlAB更改矩阵一行 >>

mAtlAB更改矩阵一行

直接提取在输入就可以了.如下参考:1.打开matlab,在命令行窗口输入a=[1,2,3;4,5,6],按回车键,创建一个2行3列的矩阵,如下图.2.如果我们想要得到跟踪矩阵的第2行和第1列的值,输入a(2,1),如下图.3.如果你想要得到矩阵的第二行和第三列的值,输入a(2,3),如下图.4.如果想要得到矩阵的多个值,可以使用a(2,[1,3])的方法,即得到矩阵第二行的第一列和第一列的值,如下图所示.5.如果我们想要获得第二行的答案数据,我们可以使用a(2,:),如下图所示.

行向量: a = [1 2 3 4 5 6 7 8 9] 执行下面语句把它变成3行2列: b = reshape(a,3,3) 执行结果: b = 1 2 3 4 5 6 7 8 9 若a=[1 2 3 4 5 6 7 8 9] 使用reshpe后想得到b=[1 2 3 4 5 6 7 8 9] 只需要将a转置一下就可以了: b=reshape(a',1,9) a=[ 1 2 3 4 5 6 7 8 9];要求这个矩阵的每一行的和 使其输出为 6 15 24可以用下面的语句:>> sum(a,2) ans = 6 15 24

有两种方法可以实现: 转置矩阵: b = a'; 通用方法:reshape()函数 示例如下: 说明:reshape(a,m,n) 表示将矩阵a变换为m行n列的矩阵,通常用于矩阵形状的改变,例如下面代码将原来的1行4列矩阵转换为2行2列矩阵

reshape(x,m,n)%%x为行向量,m*n=length(x) >> a=rand(1,16); >> b=reshape(a,2,8) b = 0.4447 0.7919 0.7382 0.4057 0.9169 0.8936 0.3529 0.0099 0.6154 0.9218 0.1763 0.9355 0.4103 0.0579 0.8132 0.1389 >> b=reshape(a,4,4) b = 0.4447 0.

试试这样:clear all;clc;m=4;n=3;A=rand(m,n);B=A;k=(1:m)';for ii=1:m B(ii, ceil(10*(rand(1)/4)))=k(ii);endB

a(3,:) = b; %一句 即可

正确来说转置是.'B=A.';就能把数列转过来而单单一个'是共轭转置B=A';转置数列的同时,虚部去相反数不过对于实数数列来说,转置和共轭转置等价

比如,将矩阵a(3x3),转换成一列,可以通过这种方法实现:

对于矩阵A,使用下面的语句即可实现你要的功能B=union(A,A,'rows')例如A=[1 1 1;1 2 3;1 1 1;4 5 6;1 2 3;1 1 1]B=union(A,A,'rows')A = 1 1 1 1 2 3 1 1 1 4 5 6 1 2 3 1 1 1B = 1 1 1 1 2 3 4 5 6

首先编写m函数如下:function out = replace(w,p)temp_h=length(w);l=1;for k=1:temp_h if w(k)==1 out(k)=p(l); l=l+1; else w(k)=0; endendend然后将该m函数放到matlab工作目录下,或改变matlab工作目录到该函数的目录.在命令空间输入如下命令:>> m=[0,1,1,0,1];>> p=[3,5,9];>> a=replace(m,p)a = 0 3 5 0 9看到了吧,a就是m矩阵中将1对应的用p的元素替换后的矩阵.

xmlt.net | jmfs.net | rtmj.net | rprt.net | jamiekid.net | 网站首页 | 网站地图
All rights reserved Powered by www.yhkn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com