登录论坛

查看完整版本 : [求助]关于文件内数据的排列


hws2007
2008-09-20, 22:34
Clear
m=3;
Ti=228;
v=[1/3,1/3,1/3];
fid=fopen('C:\Documents and Settings\Administrator\1.txt', 'r');
x=fscanf(fid,'%f',[3,inf]);
fclose(fid);
n=length(x(1,:));
T=x(1,:)+x(2,:)+x(3,:);
j=1;
for i=1:n
if x(1,i)+x(2,i)+x(3,i)==Ti
h(j)=i;
j=j+1;
end
end
t=length(h);
for j=1:m
for v=0.1:1:.1
xh1=0;
xh2=0;
for i=1:t
xh1=v^t*x(j,h(i)) ^t+xh1;
xh2=v^t+xh2;
end
xh(j,10*v)=xh1/xh2;
end
end
G=0;
for j=1:m
for i=1:t
G=x(j,i)*Ti^i+G;
end
Gt(j)=G;
end
for i=1:m
for v=0.1:1:.1
d(i,10*v)=Gt(i)-xh(i,10*v);
end
dd(i)=min(d(1,:));
if d(i,10*v)-dd(i)==0
v(i)=v;
end
end
v(3)=1-v(1)+v(2);
for i=1:m
at(1,:)=v(i)*x(i,:);
end
S=(at(1,:)+at(2,:)+at(3,:));
fid=fopen('C:\Documents and Settings\Administrator\1.xls', 'w');
for i=1:n;
fprintf(fid,'%10.4f %10.4f %10.4f %10.4f %10.4f\n',x(1,i),x(2,i),x(3.i),T(1,i).S (1.i));
end
status=fclose(fid);

以上的这段程序是属性论评估模型的算法(具体公式在附件中),我想借助这个算法来计算我的另一组数据。但是,我就是不知道所引用的那两个文件(C:\Documents and Setings\Adminitsrtaor\1.txt和C:\Documents and Setings\Adminitsrtaor\1.xls)中的数据是怎样排列的,是不是需要加些东西,以及我这段程序是不是需要做些更改来计算我的那组数据。哎,新手就是这样,貌似很简单的问题,就是不懂,麻烦高手指点了,本人将不胜感激!

t9t8321
2008-09-22, 10:56
不晓得不晓得,跟lz一起期待高人了!!!

hws2007
2008-10-09, 19:22
就没人知道吗?

meteora1005
2008-10-09, 20:34
你试着用importdata这个函数读一下这两个数据文件,具体用法看一下帮助文件。还有你的好多语句写的有问题在matlab里的单引号是英文输入的'' ,但我看你好多都是中文输入的‘’,这肯定出错。

hws2007
2008-10-13, 14:35
你试着用importdata这个函数读一下这两个数据文件,具体用法看一下帮助文件。还有你的好多语句写的有问题在matlab里的单引号是英文输入的'' ,但我看你好多都是中文输入的‘’,这肯定出错。

引号的问题我已经改过来了,谢谢,我会再试一下importdata这个函数的。