第一页
matlab file for wamit *.4 Rao output to excel file.
#1
iceforce
发表于 09-24-2009 - 16:23
精准.石油.论坛 forum.petro-china.com
wamit *.4 文件里的rao不好画图。用这个程序转到了xls里容易些了。
% wamitRaoPlot: Plot Rao in wamit *.4 file.
% Roll Pitch Yaw unit were changed in to Degree.
% Load the *.4 file and output to a xls file.
% Created by Iceforce
% Ver.1.0. 2009.09.22.
clear all;
[Rao4Name,Rao4Path] = uigetfile('*.4');
Rao4FileName = fullfile(Rao4Path,Rao4Name);
[fid,message] = fopen(Rao4FileName,'r');
Rao4Fmt = '%e %e %d %e %e %e %e' ;
headLine = fgetl(fid);
e = fscanf(fid,Rao4Fmt,[7 inf]);
wamitRao4 = e';
fclose(fid);
wDr = unique(wamitRao4(:,2));
wFs = unique(wamitRao4(:,1));
nDr = length(wDr);
nFs = length(wFs);
for iDof = 1:6
ind = find(wamitRao4(:,3) == iDof);
mgtRow = wamitRao4(ind,4);
resM = reshape(mgtRow,nDr,nFs);
rao(iDof).Rao = resM';
end
fsRow = wamitRao4(ind,1);
resFs = reshape(fsRow,nDr,nFs);
Fs = resFs(1,: )';
drRow = wamitRao4(ind,2);
resDr = reshape(drRow,nDr,nFs);
Drc = resDr(:,1 )';
outName = strcat(strrep(Rao4Name,'.4','wamitRao'),date,'.xls');
rspFilename = fullfile(Rao4Path,outName);
headerl = {strcat('Rsp Result for semi 981 from Magnitude at: ',date)};
xlswrite(rspFilename, headerl,'Surge','A1');
xlswrite(rspFilename, {'Period','Direction'},'Surge','A2');
xlswrite(rspFilename, Fs,'Surge','A4');
xlswrite(rspFilename, Drc,'Surge','B3');
xlswrite(rspFilename, rao(1).Rao,'Surge','B4');
xlswrite(rspFilename, headerl,'Sway','A1');
xlswrite(rspFilename, {'Period','Direction'},'Sway','A2');
xlswrite(rspFilename, Fs,'Sway','A4');
xlswrite(rspFilename, Drc,'Sway','B3');
xlswrite(rspFilename, rao(2).Rao,'Sway','B4');
xlswrite(rspFilename, headerl,'Heave','A1');
xlswrite(rspFilename, {'Period','Direction'},'Heave','A2');
xlswrite(rspFilename, Fs,'Heave','A4');
xlswrite(rspFilename, Drc,'Heave','B3');
xlswrite(rspFilename, rao(3).Rao,'Heave','B4');
xlswrite(rspFilename, headerl,'Roll','A1');
xlswrite(rspFilename, {'Period','Direction'},'Roll','A2');
xlswrite(rspFilename, Fs,'Roll','A4');
xlswrite(rspFilename, Drc,'Roll','B3');
xlswrite(rspFilename, rao(4).Rao*180/pi,'Roll','B4');
xlswrite(rspFilename, headerl,'Pitch','A1');
xlswrite(rspFilename, {'Period','Direction'},'Pitch','A2');
xlswrite(rspFilename, Fs,'Pitch','A4');
xlswrite(rspFilename, Drc,'Pitch','B3');
xlswrite(rspFilename, rao(5).Rao*180/pi,'Pitch','B4');
xlswrite(rspFilename, headerl,'Yaw','A1');
xlswrite(rspFilename, {'Period','Direction'},'Yaw','A2');
xlswrite(rspFilename, Fs,'Yaw','A4');
xlswrite(rspFilename, Drc,'Yaw','B3');
xlswrite(rspFilename, rao(6).Rao*180/pi,'Yaw','B4');
精准.石油.论坛 forum.petro-china.com% wamitRaoPlot: Plot Rao in wamit *.4 file.
% Roll Pitch Yaw unit were changed in to Degree.
% Load the *.4 file and output to a xls file.
% Created by Iceforce
% Ver.1.0. 2009.09.22.
clear all;
[Rao4Name,Rao4Path] = uigetfile('*.4');
Rao4FileName = fullfile(Rao4Path,Rao4Name);
[fid,message] = fopen(Rao4FileName,'r');
Rao4Fmt = '%e %e %d %e %e %e %e' ;
headLine = fgetl(fid);
e = fscanf(fid,Rao4Fmt,[7 inf]);
wamitRao4 = e';
fclose(fid);
wDr = unique(wamitRao4(:,2));
wFs = unique(wamitRao4(:,1));
nDr = length(wDr);
nFs = length(wFs);
for iDof = 1:6
ind = find(wamitRao4(:,3) == iDof);
mgtRow = wamitRao4(ind,4);
resM = reshape(mgtRow,nDr,nFs);
rao(iDof).Rao = resM';
end
fsRow = wamitRao4(ind,1);
resFs = reshape(fsRow,nDr,nFs);
Fs = resFs(1,: )';
drRow = wamitRao4(ind,2);
resDr = reshape(drRow,nDr,nFs);
Drc = resDr(:,1 )';
outName = strcat(strrep(Rao4Name,'.4','wamitRao'),date,'.xls');
rspFilename = fullfile(Rao4Path,outName);
headerl = {strcat('Rsp Result for semi 981 from Magnitude at: ',date)};
xlswrite(rspFilename, headerl,'Surge','A1');
xlswrite(rspFilename, {'Period','Direction'},'Surge','A2');
xlswrite(rspFilename, Fs,'Surge','A4');
xlswrite(rspFilename, Drc,'Surge','B3');
xlswrite(rspFilename, rao(1).Rao,'Surge','B4');
xlswrite(rspFilename, headerl,'Sway','A1');
xlswrite(rspFilename, {'Period','Direction'},'Sway','A2');
xlswrite(rspFilename, Fs,'Sway','A4');
xlswrite(rspFilename, Drc,'Sway','B3');
xlswrite(rspFilename, rao(2).Rao,'Sway','B4');
xlswrite(rspFilename, headerl,'Heave','A1');
xlswrite(rspFilename, {'Period','Direction'},'Heave','A2');
xlswrite(rspFilename, Fs,'Heave','A4');
xlswrite(rspFilename, Drc,'Heave','B3');
xlswrite(rspFilename, rao(3).Rao,'Heave','B4');
xlswrite(rspFilename, headerl,'Roll','A1');
xlswrite(rspFilename, {'Period','Direction'},'Roll','A2');
xlswrite(rspFilename, Fs,'Roll','A4');
xlswrite(rspFilename, Drc,'Roll','B3');
xlswrite(rspFilename, rao(4).Rao*180/pi,'Roll','B4');
xlswrite(rspFilename, headerl,'Pitch','A1');
xlswrite(rspFilename, {'Period','Direction'},'Pitch','A2');
xlswrite(rspFilename, Fs,'Pitch','A4');
xlswrite(rspFilename, Drc,'Pitch','B3');
xlswrite(rspFilename, rao(5).Rao*180/pi,'Pitch','B4');
xlswrite(rspFilename, headerl,'Yaw','A1');
xlswrite(rspFilename, {'Period','Direction'},'Yaw','A2');
xlswrite(rspFilename, Fs,'Yaw','A4');
xlswrite(rspFilename, Drc,'Yaw','B3');
xlswrite(rspFilename, rao(6).Rao*180/pi,'Yaw','B4');
----
来源: 精准石油论坛 - 推进信息共享,提升科技水平
第一页

登录
注册
帮助

多重回复