声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1407|回复: 8

[编程技巧] 请大家帮我看看这个程序的数据加载问题

[复制链接]
发表于 2007-5-13 15:37 | 显示全部楼层 |阅读模式

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

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

x
clear,close all
m=input('请输入节点数=');
n=input('请输入支路数=');
fid=fopen('d:\shuju1.dat','r');
a1=fscanf(fid,'%5d',[6,6]);
a1=a1';
for i=1:n
     g(i,i)=1.0/a1(i,4);
end
for i=1:n
     is(1,i)=a1(i,6);
end
for i=1:n
     us(1,i)=a1(i,5);
end
for i=1:n
     t1=a1(i,2);t2=a1(i,3);a(t1,i)=1;
     a(t2,i)=-1;
end
for i=1:m-1
    for j=1:n
       aa(i,j)=a(i,j);
      end
end
gn=aa*g*aa';us=us';is=is';
In=aa*g*us-aa*is;
Un=inv(gn)*In;
Ub=aa'*Un;
Ib=g*Ub+is-g*us;
save d:\shuju\jdd1.dat In -ascii
fclose('all');

我加载数据之后得出的a1总是一维矩阵,和我所期望的不一致.

我输入的.DAT文件是数组[1,2,1,5,12,0;2,3,2,6,-12,0;3,2,4,7,0,0;4,1,4,4,0,0;5,3,4,4,0,0;6,3,1,8,0,-1]

[ 本帖最后由 clayn 于 2007-5-13 15:42 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-13 16:18 | 显示全部楼层
dat文件里的完整内容是什么,你读出来是什么?
 楼主| 发表于 2007-5-13 16:26 | 显示全部楼层

回复 #2 yangzj 的帖子

dat文件中的完整内容就是上面给出的矩阵,   
     1     2     1     5    12     0
     2     3     2     6   -12     0
     3     2     4     7     0     0
     4     1     4     4     0     0
     5     3     4     4     0     0
     6     3     1     8     0    -1
警告是:"??? Index exceeds matrix dimensions."
输入M=4,N=6;
发表于 2007-5-13 16:32 | 显示全部楼层
这样的文件直接
a1=load('d:\shuju1.dat','r');
就行了
发表于 2007-5-13 16:38 | 显示全部楼层
原帖由 clayn 于 2007-5-13 16:26 发表
dat文件中的完整内容就是上面给出的矩阵,   
     1     2     1     5    12     0
     2     3     2     6   -12     0
     3     2     4     7     0     0
     4     1     4     4     0     0
...


照你这样做也没有问题呀
 楼主| 发表于 2007-5-13 16:45 | 显示全部楼层

回复 #5 yangzj 的帖子

果然,我也用过LOAD,可是结果是一样的,都是警告超出矩阵超出维数,应该是个6*6的矩阵,可是出来的是1维的矩阵啊,郁闷了~

不过还是谢谢楼上的这位仁兄~

[ 本帖最后由 yangzj 于 2007-5-13 16:53 编辑 ]
发表于 2007-5-13 16:53 | 显示全部楼层
原帖由 clayn 于 2007-5-13 16:45 发表
果然,我也用过LOAD,可是结果是一样的,都是警告超出矩阵超出维数,应该是个6*6的矩阵,可是出来的是1维的矩阵啊,郁闷了~

不过还是谢谢楼上的这位仁兄~


有这么奇怪?我这里运行一点问题没有哦,只有除0的warning
 楼主| 发表于 2007-5-13 17:01 | 显示全部楼层

回复 #7 yangzj 的帖子

我用的是MATLAB 6.5,请问你用的是什么版本的呢,我同学也和我说有的程序可能是因为版本的问题而不兼容,难道真的是这样的么??
发表于 2007-5-13 23:52 | 显示全部楼层
原帖由 clayn 于 2007-5-13 16:45 发表
果然,我也用过LOAD,可是结果是一样的,都是警告超出矩阵超出维数,应该是个6*6的矩阵,可是出来的是1维的矩阵啊,郁闷了~

不过还是谢谢楼上的这位仁兄~



试试 reshape
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-24 11:29 , Processed in 0.070687 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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