matlab 提取矩阵中的某一行分别并编号
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/11 03:34:40
在处理矩阵A时要先确保A已转为double型.显示B时还要转换为uint8型.我举一个例子吧,我先读取一个名为111.bmp的图像I=imread('C:\Users\DELL\Desktop
问的好奇怪,提取一个维度的矩阵,那就必须要知道其他两个维度.如图,已知x(行),y(列),z(页)表示一个3维矩阵.那么你问的A(:,:,1)实际上提取的就是第一个页,也就是将z固定为1,x,y随便取
size(double(S))ans=1531>>size(i+96)ans=126两个阵的维数不相等,不能用==来比较你能再说的详细点不?程序要达到什么目的
N=704;M=1280;n=32;m=64;A=rand(N,M);%生成原始数据矩阵B=reshape(A,n,m,N*M/(n*m));%重置矩阵为32×64×440结构fork=1:n%选择1
a=reshape(1:9,3,3)a=147258369>>d=diag(a)d=159
Y1=Y(find(Y>=10))
建议楼上的回答之前自己试一试,以免误人误己. 如果要提取矩阵元素,我能想出来的有三种方法,但如果要改变这些位置元素的值,我能想出来的只有一种方法.示例(为了与其它元素区别,赋值用NaN):%
all(A(:)>2)%A中元素是否都大于2
[i,j]=find(A==5)count=length(i)6和7类似做法没办法了,不好意思
A=rand(80,120);%这一句你就省了.>>b=A(1:8:73,1:8:113);%这一句就可以了,不过你自己取一下终值,不知道你的最后一个数据还要不要取到.
我觉得你的要求提的不清楚,例如你上面举的第一个例子,结果为什么不是四个矩阵(把A再分成三个)?应该对子矩阵的形式(例如是否要求方阵)和数量做更明确地规定才行.再问:我的希望是是在某个a*b的随机矩阵中
fork=1:length(a)tmp=a{k};b(:,k)=tmp(:,end);endb矩阵就是把a中所有矩阵的最后一列放在一起拼成的矩阵.再问:>>a={}formi=1:18ifmi
sort(A(i,:))第i行排序
=a(find(a));b就是你要求的矩阵了~再问:运行结果是程序名称呀,是不是什么地方写错啦?谢谢您。再答:程序名称??你把分号去掉。。再问:这样写就可以了。a=[1-12-23-3]%产生随机矩阵
max(A)
直接A1就能取出A1了啊再问:fori=1:n生成矩阵A;M=[M;A];endsorry..实际是这样的再答:每个A的行数又不相同生成的过程又没有记录A的行数信息,这是无法在从的M中重新提取Ai的建
同学,是这样滴,矩阵去除某些元素,必须用另外的元素补上,不然就不是矩阵了你要去掉175,可以用0补上,例如:>>A=[123;456;789];>>A(1:2:5)=0A=023406089要是选择不
a=[0.020.10.40.9];y1=4*a./(1-a).^2;y2=sin(a./2).^2;y=1./(1+y1.*y2);
取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2,j1:j2),新矩阵V为矩阵A的【1,2】行,【3,4】列故:V=3341再问:j1:j2不是第一、第二列吗再答:你不是写的是V=A
需要问清楚:5的倍数,指的是[51015...]还是[161116...]?因为matlab里的索引是从1开始的.再问:后者和前者都可以,前者出来了后者在程序上加一就可以了,求高手解答再答:B=A(1