声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 905|回复: 6

[编程技巧] 这个程序如何实现?请高手帮忙。

[复制链接]
发表于 2007-3-29 18:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
现在一个20480*223的一个矩阵,现要将其中的第3~108列中的相邻两列相减合并,即3,4列合并,5,6列合并,……107,108列合并,109列以后不变。合并后的矩阵应该是20480*170的。请问如何用MATLAB或FORTRAN实现?我用FORTRAN编写程序如下,但是结果不正确

                               real a(20480,223)                 
                 open(unit=1,file='scan000.txt',STATUS='OLD')
                 open(unit=2,file='s000.txt',STATUS='new')                 
                 read(1,*)((a(i,j),j=1, 223) ,i=1,20480)
                 do  10 i=1,20480
                        do 20 j=1,223
                           if(j.ge.4.and.j.le.108.and.mod(j,2).eq.0) then
                              a(i,j-1)=a(i,j-1)- a(i,j)
                           else          
                          end if
        20      continue
        10   continue   
                    write(2,*)((a(k,m),m=1,170),k=1,20480)

                      close(1)
                      close(2)
                      end


[ 本帖最后由 yxb345 于 2007-3-29 20:31 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-3-29 20:19 | 显示全部楼层
for ii = 3:55,
    a(:,ii) = a(:,ii)-a(:,ii+1);
    a(:,ii+1) = [];
end

最后序列维数20480*170

评分

1

查看全部评分

 楼主| 发表于 2007-3-29 20:57 | 显示全部楼层
这样编好象也不正确啊,算得的结果并不正确。
SourcePath='D:\MATLAB6p5\work\scan000.txt';% 指定文件路径
fid1=fopen(SourcePath,'r');
A00=fread(fid1,[20480,223],'float');
for i=3,53
    A00(:,i)=A00(:,i)-A00(:,i+1)
    A00(:,i+1) = [];
end

fclose(fid1);
save s00.txt A00 -ascii
发表于 2007-3-29 21:02 | 显示全部楼层
  1. for i=3,53
复制代码


是冒号,不是逗号
 楼主| 发表于 2007-3-30 10:58 | 显示全部楼层
改成“冒号”后还是得不出正确结果啊。

[ 本帖最后由 yxb345 于 2007-3-30 14:47 编辑 ]
发表于 2007-3-30 17:02 | 显示全部楼层
我也试过了;
发表于 2007-4-7 20:13 | 显示全部楼层

回复 #1 yxb345 的帖子

for ii =3:2:107
    a(:,ii) = a(:,ii)-a(:,ii+1);

   end
for b=4:54
a(:,b)=[];
end
这个应该可以吧
  因为当  a(:,b)=[];运行一次后(删除第4列),
a矩阵大小即变为a(m,n-1)
也就是以前的n列现在为n-1列,
所以要清空的那列为原矩阵的第6列,
即变为第5列所以用
for b=4:54
a(:,b)=[];
end
即可得

[ 本帖最后由 rainbowolf 于 2007-4-7 21:18 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-13 01:31 , Processed in 0.068297 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表