clear; %清除内存变量
ss1=input('give a data filename:','s');
fp1=fopen(ss1,'r');
ss2=input('give a result filename:','s');
fp2=fopen(ss2,'w');
%1.读入结构数据、建立累积约束表向量、建立结构刚度矩阵
%1.1.结构参数和弹性模量
[m,c]=fscanf(fp1,'%u',[1]); %杆件数
[nj,c]=fscanf(fp1,'%u',[1]); %节点数
[nrj,c]=fscanf(fp1,'%u',[1]); %约束节点
[e,c]=fscanf(fp1,'%e',[1]); %弹性模量
fprintf(fp2,'(1)结构参数和弹性模量\n');
fprintf(fp2,'杆件数节点数约束节点数弹性模量\n');
fprintf(fp2,'%3u %8u %8u %13.3e\n',m,nj,nrj,e);
fprintf(fp2,'\n');
%1.2. 节点坐标
pc(1:2,1:nj)=0
for jx=1:nj
[k,c]=fscanf(fp1,'%u',[1]); %节点号
[pc(:,k),c]=fscanf(fp1,'%f',[2]); %x坐标、y坐标
end
fprintf(fp2,'(2)节点坐标\n');
fprintf(fp2,'节点号x坐标y坐标\n');
fprintf(fp2,'%3u %13.3e %13.3e\n',[1:nj;pc(:,1:nj)]);
fprintf(fp2,'\n');
%1.3.杆件标号与截面特性
jj(1:m)=0; jk(1:m)=0; ax(1:m)=0; iz(1:m)=0;
for imx=1:m
[k,c]=fscanf(fp1,'%u',[1]); %杆件号
[jj(k),c]=fscanf(fp1,'%u',[1]); %j端点号
[jk(k),c]=fscanf(fp1,'%u',[1]); %k端点号
[ax(k),c]=fscanf(fp1,'%f',[1]); %截面积
[iz(k),c]=fscanf(fp1,'%f\n',[1]); %杆件号
end
fprintf(fp2,'(3)杆件标号与截面特性\n');
fprintf(fp2,'杆件号j端点号k端点号截面积截面惯性矩\n');
fprintf(fp2,'%3u %8u%8u %13.3e%13.3e\n',[1:m;jj(1:m);jk(1:m);ax(1:m);iz(1:m)]); fprintf(fp2,'\n');
%1.4.di和dj取值
di(1:m)=0; dj(1:m)=0;
for imx=1:m
[k1(imx),c]=fscanf(fp1,'%u',[1]);
[di(k1(imx)),c]=fscanf(fp1,'%f',[1]);
[dj(k1(imx)),c]=fscanf(fp1,'%f',[1]);