poster
2019-11-23, 20:41
I am new in python. pleae tell me How I can convert this matlab file to python,
classdef TGrid < handleproperties % properties common for all grids NzEarth % number of Earth layers Nza % number of air layersendmethods %set airLayers for the grid function obj = setAirLayers(obj,varargin) Method = 'fixed height'; % OPTIONS: mirror, Fixed Height, Read From File MaxHeight = 10^6 ; % Fixed height of top nzAir = 15 ; % number of layers InputFile = []; n = length(varargin); if mod(n,2) error('Arguments must occur in pairs') end for k = 1:2:n option = lower(varargin{k}); switch option case 'method' Method = lower(varargin{k+1}); nzAir = 10; case 'maxheight' MaxHeight = varargin{k+1}; case 'nlayers' nzAir = varargin{k+1}; case 'inputfile' InputFile = varargin{k+1}; end end switch Method case 'mirror' dzAir = obj.Dz(obj.Nza+1:obj.Nza+nzAir).*(3.^(0:nzAir-1))'; case 'fixed height' z1_log = log10(obj.Dz(1)); dlogz = (log10(MaxHeight)-z1_log)/(nzAir); z = 10.^(z1_log:dlogz:log10(MaxHeight)); dzAir = diff(z); case 'read from file' fid = fopen(InputFile); [dzAir,nzAir] = fscanf(fid,'%f','inf'); end [n,~] = size(dzAir); if n == 1 dzAir = dzAir.'; end obj.Nza = nzAir; obj.Dz = [dzAir(end:-1:1) ; obj.Dz]; obj.Nz = length(obj.Dz); obj.dualLengths; obj.setIndices; end % setAirLayers end % methodsend % classdef
更多... (https://stackoverflow.com/questions/59003150/converting-between-matlab-and-python)
classdef TGrid < handleproperties % properties common for all grids NzEarth % number of Earth layers Nza % number of air layersendmethods %set airLayers for the grid function obj = setAirLayers(obj,varargin) Method = 'fixed height'; % OPTIONS: mirror, Fixed Height, Read From File MaxHeight = 10^6 ; % Fixed height of top nzAir = 15 ; % number of layers InputFile = []; n = length(varargin); if mod(n,2) error('Arguments must occur in pairs') end for k = 1:2:n option = lower(varargin{k}); switch option case 'method' Method = lower(varargin{k+1}); nzAir = 10; case 'maxheight' MaxHeight = varargin{k+1}; case 'nlayers' nzAir = varargin{k+1}; case 'inputfile' InputFile = varargin{k+1}; end end switch Method case 'mirror' dzAir = obj.Dz(obj.Nza+1:obj.Nza+nzAir).*(3.^(0:nzAir-1))'; case 'fixed height' z1_log = log10(obj.Dz(1)); dlogz = (log10(MaxHeight)-z1_log)/(nzAir); z = 10.^(z1_log:dlogz:log10(MaxHeight)); dzAir = diff(z); case 'read from file' fid = fopen(InputFile); [dzAir,nzAir] = fscanf(fid,'%f','inf'); end [n,~] = size(dzAir); if n == 1 dzAir = dzAir.'; end obj.Nza = nzAir; obj.Dz = [dzAir(end:-1:1) ; obj.Dz]; obj.Nz = length(obj.Dz); obj.dualLengths; obj.setIndices; end % setAirLayers end % methodsend % classdef
更多... (https://stackoverflow.com/questions/59003150/converting-between-matlab-and-python)