v3d_import_apot.m

来自「matlab 三维显示。所有代码都有。可以显示三维网格。」· M 代码 · 共 54 行

M
54
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [x,y,z,v] = v3d_import_apot(filename)
%
% Anomales Potential einlesen (Dateiformat von Birgit Futterer)
% --------------------------------------------------------------------
%
% Format der Datei:
% 
% 2 Zeilen: Kommentar 
% n Zeilen: x y z v  
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fid=fopen(filename);
for i=1:2
    zeile{i} = fgetl(fid);
end
fclose(fid);

% Infodialog 黚er einzulesenden Datensatz
dlginfo = questdlg({['Datei: ' filename],['Dimension: ' zeile{1}],['Quelle: ' zeile{2}],'','Soll der Datensatz eingelesen werden?',''},'APOT Datei laden...','Ok','Abbruch','');
% Auswerten des Infodialoges
if strcmp(dlginfo,'Abbruch')
   x=0;y=0;z=0;v=0;
   return;
end

% Datens鋞ze einlesen
[xval yval zval vval] = textread(filename,'%f %f %f %f','delimiter','\n','whitespace','','headerlines',2);    

% Vektoren drehen
zval=rot90(zval);
yval=rot90(yval);
xval=rot90(xval);

% sortieren nach Gr鲞e und doppelte entfernen
xx=unique(sort(xval));
yy=unique(sort(yval));
zz=unique(sort(zval));

% Matrix yy*xx*zz erstellen und mit NaN f黮len
vv=ones(length(yy),length(xx),length(zz))*NaN;

for t=1:length(vval)
    i=find(xx==xval(t));
    j=find(yy==yval(t));
    k=find(zz==zval(t));
    vv(j,i,k)=vval(t);
end

x=xx;
y=yy;
z=zz;
v=vv;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?