提取矩阵部分数据MATLAB
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/29 05:26:05
在处理矩阵A时要先确保A已转为double型.显示B时还要转换为uint8型.我举一个例子吧,我先读取一个名为111.bmp的图像I=imread('C:\Users\DELL\Desktop
学MATLAB一定要看帮助的~文件输入输出有很多种方式很多种类型对应帮助文档'FileI/O'就你说的问题来举例吧如果你的输入文件中不含其它非法码字而且格式规整就是说你的输入文件完全符合要求可以用't
这位网友的问题比较具体,我觉得可以这样处理:1、判断哪些数据是“大值”(可以是绝对值大于4的,也可以参考3σ准则),是大值的标1,其他标0;2、定义连续多少个1为“集中”,并按照此规则找到“集中”的区
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))
a=randperm(10);%a为1~10随意打乱顺序b=[1,3,5,7,9];%b为一组下标数据c=a(b);%将矩阵中对应下标的数据取出,结果存在c矩阵中(c为a矩阵的第[1,3,5,7,9]
用save来把数据存到mat文件用load来读取相关mat文件你可以在运行工具箱的函数里面加入save("文件路径")具体操作方法输入helpsave来看.然后出来以后用load("x.mat")读取
[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的随机矩阵中
abaidu=rand(20,20);%假设这个矩阵abaidu是20*20的bbaidu=abaidu(1,:);%提取这个矩阵的第一行tbaidu=linspace(0,2*pi,length(b
fork=1:length(a)tmp=a{k};b(:,k)=tmp(:,end);endb矩阵就是把a中所有矩阵的最后一列放在一起拼成的矩阵.再问:>>a={}formi=1:18ifmi
A=[123;456;789;987]A=123456789987>>[C,B]=lu(A)%矩阵的三角分解(lu),满足A=C*BC=0.11110.62500.73270.44440.81251.
举个例子吧>>A=rand(5,6)A=0.64430.93900.20770.19480.31110.97970.37860.87590.30120.22590.92340.43890.81160.
假设你的数据放在变量a中.fori=1:32361[m,n]=find(a(i,:)>10);a(1:n(1)-1)=zeros(1,n(1)-1);ifsum(a(n,:))==3270a(n(1)
dt=[randint(10000,1,[059])randint(10000,1,[100999])];%换成你自己的数据R=[];fork=0:59r=dt(dt(:,1)==k,:);R=[R;
提取X的2到8行的第1列
同学,是这样滴,矩阵去除某些元素,必须用另外的元素补上,不然就不是矩阵了你要去掉175,可以用0补上,例如:>>A=[123;456;789];>>A(1:2:5)=0A=023406089要是选择不
取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2,j1:j2),新矩阵V为矩阵A的【1,2】行,【3,4】列故:V=3341再问:j1:j2不是第一、第二列吗再答:你不是写的是V=A