FORTRAN矩阵隔列提取
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/10 11:07:22
在处理矩阵A时要先确保A已转为double型.显示B时还要转换为uint8型.我举一个例子吧,我先读取一个名为111.bmp的图像I=imread('C:\Users\DELL\Desktop
学MATLAB一定要看帮助的~文件输入输出有很多种方式很多种类型对应帮助文档'FileI/O'就你说的问题来举例吧如果你的输入文件中不含其它非法码字而且格式规整就是说你的输入文件完全符合要求可以用't
行列式是一个数,一个矩阵与一个行列式想乘,就是用这个数(即行列式的值)去乘以矩阵里的每一个元素.如果要看成提取因子,那也只是将矩阵中的所有元素的公因子|A|提取出来.而不是相当于提取了行列式的行还是列
a=reshape(1:9,3,3)a=147258369>>d=diag(a)d=159
Y1=Y(find(Y>=10))
举个实例额,定义被提取的矩阵a.a=[12345678910];b=a(:,1:2:10)%1:2:10意思是从第一列到第十列每两列取一列.%若写成1:2:1+2n,得先定义n的值.运行结果:
a=[7;8;5;2;6;4;3];%或者是其他的列矩阵,可以随便设置.x=5;%表示取a的前5行,当然也可以取前4行,这个自行设置.b=a;%中间变量,用于存放每个不同的列矩阵.fori=1:len
[i,j]=find(A==5)count=length(i)6和7类似做法没办法了,不好意思
A=rand(80,120);%这一句你就省了.>>b=A(1:8:73,1:8:113);%这一句就可以了,不过你自己取一下终值,不知道你的最后一个数据还要不要取到.
fork=1:length(a)tmp=a{k};b(:,k)=tmp(:,end);endb矩阵就是把a中所有矩阵的最后一列放在一起拼成的矩阵.再问:>>a={}formi=1:18ifmi
!aa为原矩阵,b为存放aa的逆矩阵,n为矩阵aa的维数subroutinenizhen(aa,b,n)integern,i,j,kreal::aa(n,n),b(n,n),a(n,n)a=aadoi
(I3,I3/,I3,I3)意思是,输出两个I(整数)3(长度),然后换行(/),然后再输出两个整数,长度3这是格式化输出.与数组没有什么关系.因为有一个/,所以换行以后就是2行.Fortran的存储
M=rand(100);Even_row=M(2:2:end,:);Even_col=M(:,2:2:end);
矩阵方程记为XA=B,则(A,E)=21-11002100101-11001初等行变换为1-1100121001021-1100初等行变换为1-1100103-201-203-310-2初等行变换为1
max(A)
矩阵的大小和数值随机输入,随机输入某一数值,编写FIND子程序查找X在矩阵中的位置,在主程序中对FIND子程序进行调用,输出该元素的值和位置,若未找到则给出“notfound”信息.
dt=[randint(10000,1,[059])randint(10000,1,[100999])];%换成你自己的数据R=[];fork=0:59r=dt(dt(:,1)==k,:);R=[R;
假设矩阵变量Ai行j列A[i,j]i行的所有元素A[i,1..-1]j列的所有元素A[1..-1,j]
LS说的直接用for循环就可以或者用mat2cell,把矩阵分成几个cell,然后分别取cell也可以
同学,是这样滴,矩阵去除某些元素,必须用另外的元素补上,不然就不是矩阵了你要去掉175,可以用0补上,例如:>>A=[123;456;789];>>A(1:2:5)=0A=023406089要是选择不