我在前几天在CSDN上下载了一个提取Nastran结果.pch文件中的刚度阵和质量阵的m文件,代码如下:
//
function [K,M]=Get_K_M(N)
%读取Nastran的pch文件,得到模型的总体质量和刚度矩阵
%输入:N,模型节点个数
%输出:模型总体质量矩阵M,总体刚度矩阵K
%2009年8月24日
[filename,filepath]=uigetfile('*.pch','请选择pch数据文件'); %选择需要处理的pch文件
file_path_name=strcat(filepath,filename); %将字符串 文件名称和路径连接
fid=fopen(file_path_name);%打开文件
case1='DMIG';case2='DMIG*';case3='*'; %每行第一串字符的三种情况
while (~feof(fid)) %判断文件是否结束
line=fgetl(fid); %读取一行数据,返回字符串
line_head=strread(line(1:8),'%s',1);%第一串字符,三种情况:‘DMIG’,‘DMIG*’或‘*’
if strcmp(line_head,case1)%如果第一串字符是 DMIG
lie=0;
[matrix_name,zero1,ifo,tin,tout,matrix_size]=...
strread(line(9:end),' %s %d %d %d %d %d');%提