WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

"If loop" generieren und automatisieren

 

Dominiques

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2016, 12:42     Titel: "If loop" generieren und automatisieren
  Antworten mit Zitat      
Hallo zusammen

könnt ihr mir kurz helfen mit dieser Tabelle?
Muss eine interpolation machen für alle 4 Werte, diese habe ich bereits gemacht (4 Blöcke) und schaut für eine Zeile wiefolgt aus.
Der Einganswerte LAT muss jedoch immer wieder neu angegeben werden, jenachdem wo man sich auf der Erde befindet, sprich es geht um den Wert LAT, welcher eingepflegt werden sollte.


Code:
lat=21.2438;                                     % Input Latitude of approximate location [°]

latdifBm=(6.30*10^-3)-(6.05*10^-3);         % meanB
interpolatBm=latdifBm/15;
calclatBm=interpolatBm*(30-lat);
Bm=(6.05*10^-3)+calclatBm;

latdifLm=(2.77)-(3.15);                             % meanL
interpolatLm=latdifLm/15;
calclatLm=interpolatLm*(30-lat);
Lm=(3.15)+calclatLm;

latdifBd=(0.25*10^-3)-(0);                       % deltaB
interpolatBd=latdifBd/15;
calclatBd=interpolatBd*(30-lat);
Bd=(0)+calclatBd;

latdifLd=(0.33)-(0);                                 % deltaL
interpolatLd=latdifLd/15;
calclatLd=interpolatLd*(30-lat);
Ld=(0)+calclatLd;



Habe jetzt 6 solche meanB, meanL,deltaB und deltaL geschrieben und kommentier im Skript die jeweiligen Blöcke ein /aus, je nach LAT Wert.

ZIEL: Das Ziel ist, dass ich den LAT Wert im Skript eingeben kann und das Skript automatisch versteht: "ah der LAT Wert 21.2438 liegt im bereich 15-30° und lässt dann die 4 Blöcke von oben durchlaufen

Habe versucht mit einem Loop zu arbeiten, aber ich kriegs nicht hin.

Code:
lat=21.2438;

if(lat<=15);
elseif(lat>15<30);
elseif(lat>30<45);
elseif(lat>45<60);
elseif(lat>60<75);
elseif(lat>=75);
end


Viele Grüsse und Danke

Dominiques

FullSizeRender.jpg
 Beschreibung:

Download
 Dateiname:  FullSizeRender.jpg
 Dateigröße:  622.49 KB
 Heruntergeladen:  365 mal


Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2016, 13:32     Titel:
  Antworten mit Zitat      
Hier die ganzen Blöcke, für jeden Wertebereich des LAT

Kommentiere immer ein und aus, je nach LAT Koordinate. Aber das kanns ja auch nicht sein...

Code:
%----START Latitude case <=15°----------------------------------------------
Bm=(6.3*10^-3);
Lm=(2.77);
Bd=0;
Ld=0;
%----END Latitude case <=15°------------------------------------------------

%----START Latitude case 15°-30°-------------------------------------------
lat=21.2438;                                         % Input Latitude of approximate location [°]
latdifBm=(6.30*10^-3)-(6.05*10^-3);                  % meanB
interpolatBm=latdifBm/15;
calclatBm=interpolatBm*(30-lat);
Bm=(6.05*10^-3)+calclatBm;

latdifLm=(2.77)-(3.15);                             % meanL
interpolatLm=latdifLm/15;
calclatLm=interpolatLm*(30-lat);
Lm=(3.15)+calclatLm;

latdifBd=(0.25*10^-3)-(0);                          % deltaB
interpolatBd=latdifBd/15;
calclatBd=interpolatBd*(30-lat);
Bd=(0)+calclatBd;

latdifLd=(0.33)-(0);                                 % deltaL
interpolatLd=latdifLd/15;
calclatLd=interpolatLd*(30-lat);
Ld=(0)+calclatLd;
%----END Latitude case 15°-30°---------------------------------------------

%----START Latitude case 30°-45°-------------------------------------------
lat=yourvaluefrom 30°-45°;                          % Input Latitude of approximate location [°]
latdifBm=(6.05*10^-3)-(5.58*10^-3);                 % meanB
interpolatBm=latdifBm/15;
calclatBm=interpolatBm*(45-lat);
Bm=(5.58*10^-3)+calclatBm;

latdifLm=(3.15)-(2.57);                             % meanL
interpolatLm=latdifLm/15;
calclatLm=interpolatLm*(45-lat);
Lm=(2.57)+calclatLm;

latdifBd=(0.25*10^-3)-(0.32*10^-3);                % deltaB
interpolatBd=latdifBd/15;
calclatBd=interpolatBd*(45-lat);
Bd=(0.32*10^-3)+calclatBd;

latdifLd=(0.33)-(0.46);                            % deltaL
interpolatLd=latdifLd/15;
calclatLd=interpolatLd*(45-lat);
Ld=(0.46)+calclatLd;
%----END Latitude case 30°-45°---------------------------------------------

%----START Latitude case 45°-60°-------------------------------------------
lat=yourvaluefrom 45°-60°;                        % Input Latitude of approximate location [°]
latdifBm=(5.58*10^-3)-(5.39*10^-3);               % meanB
interpolatBm=latdifBm/15;
calclatBm=interpolatBm*(60-lat);
Bm=(5.39*10^-3)+calclatBm;

latdifLm=(2.57)-(1.81);                          % meanL
interpolatLm=latdifLm/15;
calclatLm=interpolatLm*(60-lat);
Lm=(1.81)+calclatLm;

latdifBd=(0.32*10^-3)-(0.81*10^-3);              % deltaB
interpolatBd=latdifBd/15;
calclatBd=interpolatBd*(60-lat);
Bd=(0.81*10^-3)+calclatBd;

latdifLd=(0.46)-(0.74);                          % deltaL
interpolatLd=latdifLd/15;
calclatLd=interpolatLd*(60-lat);
Ld=(0.74)+calclatLd;
%----END Latitude case 45°-60°---------------------------------------------

%----START Latitude case 60°-75°-------------------------------------------
lat=yourvaluefrom 60°-75°;                    % Input Latitude of approximate location [°]
latdifBm=(5.39*10^-3)-(4.53*10^-3);             % meanB
interpolatBm=latdifBm/15;
calclatBm=interpolatBm*(75-lat);
Bm=(4.53*10^-3)+calclatBm;

latdifLm=(1.81)-(1.55);                          % meanL
interpolatLm=latdifLm/15;
calclatLm=interpolatLm*(75-lat);
Lm=(1.55)+calclatLm;

latdifBd=(0.81*10^-3)-(0.62*10^-3);               % deltaB
interpolatBd=latdifBd/15;
calclatBd=interpolatBd*(75-lat);
Bd=(0.62*10^-3)+calclatBd;

latdifLd=(0.74)-(0.30);                             % deltaL
interpolatLd=latdifLd/15;
calclatLd=interpolatLd*(75-lat);
Ld=(0.30)+calclatLd;
%----END Latitude case 60°-75°---------------------------------------------

%----START Latitude case >=75°----------------------------------------------
Bm=(4.53*10^-3);
Lm=(1.55);
Bd=(0.62*10^-3);
Ld=(0.3);
%----END Latitude case >=75°------------------------------------------------
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.05.2016, 15:39     Titel:
  Antworten mit Zitat      
Hallo,

schon mal in die Doku von if geschaut? Da gibt es ein Beispiel, wie man mit Intervallbeschränkungen umgeht.
http://de.mathworks.com/help/matlab/ref/if.html#bt9p1zl-5

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2016, 17:28     Titel:
  Antworten mit Zitat      
Hallo Harald

Herzlichen Dank, ich habe es gegoogelt aber ich fand keien Lösung dazu.

Jetzt liest das Programm den genauen Wert raus, jedoch wie verknüpf ich LAT nun mit den jeweiligen 4 Blöcken? stehe gerade auf dem Schlauch...

Code:
if (lat >= minVal1) && (lat <= maxVal1)                 % 0.00-15.00
    disp('Value within specified range 0-15.')
elseif (lat >= minVal2) && (lat <= maxVal2)             % 15.01-30.00
      disp('Value within specified range 15.01-30.00.')
elseif (lat >= minVal3) && (lat <= maxVal3)             % 30.01-45.00
    disp('Value within specified range 30.01-45.00.')
elseif (lat >= minVal4) && (lat <= maxVal4)             % 45.01-60.00
    disp('Value within specified range 45.01-60.00.')  
elseif (lat >= minVal5) && (lat <= maxVal5)             % 60.01-75.00
    disp('Value within specified range 60.01-75.00.')
elseif (lat > maxVal5)
    disp('Value exceeds 75.')
end



Nach ein paar mal "hinrnen":

Code:
lat=21.2438;
minVal1=0.00;
maxVal1=15.00;
minVal2=15.01;
maxVal2=30.00;
minVal3=30.01;
maxVal3=45.00;
minVal4=45.01;
maxVal4=60.00;
minVal5=60.01;
maxVal5=75.00;

if (lat >= minVal1) && (lat <= maxVal1)                 % 0.00-15.00
    disp('Value within specified range: 0-15.')
        Bm=(6.3*10^-3);
        Lm=(2.77);
        Bd=0;
        Ld=0;
elseif (lat >= minVal2) && (lat <= maxVal2)             % 15.01-30.00
      disp('Value within specified range: 15.01-30.00.')
        latdifBm=(6.30*10^-3)-(6.05*10^-3);                  % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(30-lat);
        Bm=(6.05*10^-3)+calclatBm;

        latdifLm=(2.77)-(3.15);                             % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(30-lat);
        Lm=(3.15)+calclatLm;

        latdifBd=(0.25*10^-3)-(0);                          % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(30-lat);
        Bd=(0)+calclatBd;

        latdifLd=(0.33)-(0);                                 % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(30-lat);
        Ld=(0)+calclatLd;
elseif (lat >= minVal3) && (lat <= maxVal3)             % 30.01-45.00
    disp('Value within specified range: 30.01-45.00.')
        latdifBm=(6.05*10^-3)-(5.58*10^-3);                 % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(45-lat);
        Bm=(5.58*10^-3)+calclatBm;

        latdifLm=(3.15)-(2.57);                             % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(45-lat);
        Lm=(2.57)+calclatLm;

        latdifBd=(0.25*10^-3)-(0.32*10^-3);                % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(45-lat);
        Bd=(0.32*10^-3)+calclatBd;

        latdifLd=(0.33)-(0.46);                            % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(45-lat);
        Ld=(0.46)+calclatLd;
elseif (lat >= minVal4) && (lat <= maxVal4)             % 45.01-60.00
    disp('Value within specified range: 45.01-60.00.')
        latdifBm=(5.58*10^-3)-(5.39*10^-3);               % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(60-lat);
        Bm=(5.39*10^-3)+calclatBm;

        latdifLm=(2.57)-(1.81);                          % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(60-lat);
        Lm=(1.81)+calclatLm;

        latdifBd=(0.32*10^-3)-(0.81*10^-3);              % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(60-lat);
        Bd=(0.81*10^-3)+calclatBd;

        latdifLd=(0.46)-(0.74);                          % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(60-lat);
        Ld=(0.74)+calclatLd;
elseif (lat >= minVal5) && (lat <= maxVal5)             % 60.01-75.00
    disp('Value within specified range: 60.01-75.00.')
        latdifBm=(5.39*10^-3)-(4.53*10^-3);             % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(75-lat);
        Bm=(4.53*10^-3)+calclatBm;

        latdifLm=(1.81)-(1.55);                          % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(75-lat);
        Lm=(1.55)+calclatLm;

        latdifBd=(0.81*10^-3)-(0.62*10^-3);               % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(75-lat);
        Bd=(0.62*10^-3)+calclatBd;

        latdifLd=(0.74)-(0.30);                             % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(75-lat);
        Ld=(0.30)+calclatLd;
elseif (lat > maxVal5)
    disp('Value exceeds: 75.')
        Bm=(4.53*10^-3);
        Lm=(1.55);
        Bd=(0.62*10^-3);
        Ld=(0.3);
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.05.2016, 17:42     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe deine Frage nicht.

Gibt es eigentlich einen Grund, warum du keine fertige Funktion zur Interpolation nimmst, z.B. interp1?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.05.2016, 17:56     Titel:
  Antworten mit Zitat      
Hallo Harald

Ich bin nicht auf dei Idee gekommen eine fertige Interpolationsfunktion zu nehmen .... :/

die frage hat sich erledigt, es läuft jetzt alles.

Das einzige Problem ist, ich sollte von meinem Skript eine Funktion gestalten. Ich kopiere das jetzt mal rüber und versuche es irgendwie zum Laufen zu bringen.. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2016, 00:22     Titel:
  Antworten mit Zitat      
Hallo zusammen

Mit dem Skript lese ich die Troposphärischen Werte raus PRO HÖHE.
Jetzt kann ich jedoch nur immer für "h" (Höhe) einen Wert eingeben und laufen lassen, das gibt mir den Wert Htropo (letzter Wert im Code).

Gut wäre jedoch ich könnte "h" als Bereich setzen, sagen wir 1:2600. So würde ich2600 mal einen HTropo Wert bekommen. Somit für jede Höhe würde dies durchgerechnet werden.

Wie krieg ich das hin?
"h" wird nur in den untersten 10 Zeilen gebraucht!

Ich denke mit einer for- Funktion: For h=1:2650 etc.
Zudem müsste ich ja dann eine Struktur bekommen, die zwei Spalten hat, eine für "h" und die andere für "Htropo" und könnte es als .csv ausschreiben lassen.

Wäre sehr froh um Hilfe.

Viele Grüsse

Dominiques



Code:
%Information requested
Tsc=29;                                      % Temperature at Station level [Celcius]
Ps=1015;                                     % Pressure at station level [mbar]
RHs=83;                                      % Relative humidity at station level[in %]
h=1:2650;                                           % Height of a point above sea level
hs=20.1;                                     % Height of a point at station level
lat=21.5438;                                 %  Where is your location of interest in Latitude [°] % Calculate Lapse rates cases for B & L
D=datenum(2015,11,15) - datenum(2015,1,1)+1; % returns the number of days in the given year, based on the day-count basis.
NoS=1;                                       % Temporal offset, Northern Hemisphere = 0, Southern hemisphere = 1
SLAi=44;                                     % nominal incident angle (ellipsodial) at image sample


% Given Data
k1=77.604;          % refractive effect of induced molecular polarization of dry gases [K/mbar]
k2=23.3;            % refractive effect of induced molecular polarization of water vapor [K/mbar]
k3=3.75*10^5;       % refractive effect of the permanent dipole moment of water vapor [K/mbar]
Rd=287.054;         % mean specific gas constant for dry [J/K*kg]
g=9.80665;          % mean gravitational acceleration at the erath's surface [m/s^2]
gm=9.784;           % mean gravitational acceleration at in the troposphere [m/s^2]

%Calculation
minVal1=0.00;
maxVal1=15.00;
minVal2=15.01;
maxVal2=30.00;
minVal3=30.01;
maxVal3=45.00;
minVal4=45.01;
maxVal4=60.00;
minVal5=60.01;
maxVal5=75.00;

if (lat >= minVal1) && (lat <= maxVal1)                 % 0.00-15.00
    disp('Latitude within specified range: 0°-15°.')
        Bm=(6.3*10^-3);
        Lm=(2.77);
        Bd=0;
        Ld=0;
elseif (lat >= minVal2) && (lat <= maxVal2)             % 15.01-30.00
      disp('Latitude within specified range: 15.01°-30.00°.')
        latdifBm=(6.30*10^-3)-(6.05*10^-3);                  % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(30-lat);
        Bm=(6.05*10^-3)+calclatBm;

        latdifLm=(2.77)-(3.15);                             % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(30-lat);
        Lm=(3.15)+calclatLm;

        latdifBd=(0.25*10^-3)-(0);                          % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(30-lat);
        Bd=(0)+calclatBd;

        latdifLd=(0.33)-(0);                                 % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(30-lat);
        Ld=(0)+calclatLd;
elseif (lat >= minVal3) && (lat <= maxVal3)             % 30.01-45.00
    disp('Latitude within specified range: 30.01°-45.00°.')
        latdifBm=(6.05*10^-3)-(5.58*10^-3);                 % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(45-lat);
        Bm=(5.58*10^-3)+calclatBm;

        latdifLm=(3.15)-(2.57);                             % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(45-lat);
        Lm=(2.57)+calclatLm;

        latdifBd=(0.25*10^-3)-(0.32*10^-3);                % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(45-lat);
        Bd=(0.32*10^-3)+calclatBd;

        latdifLd=(0.33)-(0.46);                            % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(45-lat);
        Ld=(0.46)+calclatLd;
elseif (lat >= minVal4) && (lat <= maxVal4)             % 45.01-60.00
    disp('Latitude within specified range: 45.01°-60.00°.')
        latdifBm=(5.58*10^-3)-(5.39*10^-3);               % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(60-lat);
        Bm=(5.39*10^-3)+calclatBm;

        latdifLm=(2.57)-(1.81);                          % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(60-lat);
        Lm=(1.81)+calclatLm;

        latdifBd=(0.32*10^-3)-(0.81*10^-3);              % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(60-lat);
        Bd=(0.81*10^-3)+calclatBd;

        latdifLd=(0.46)-(0.74);                          % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(60-lat);
        Ld=(0.74)+calclatLd;
elseif (lat >= minVal5) && (lat <= maxVal5)             % 60.01-75.00
    disp('Latitude within specified range: 60.01°-75.00°.')
        latdifBm=(5.39*10^-3)-(4.53*10^-3);             % meanB
        interpolatBm=latdifBm/15;
        calclatBm=interpolatBm*(75-lat);
        Bm=(4.53*10^-3)+calclatBm;

        latdifLm=(1.81)-(1.55);                          % meanL
        interpolatLm=latdifLm/15;
        calclatLm=interpolatLm*(75-lat);
        Lm=(1.55)+calclatLm;

        latdifBd=(0.81*10^-3)-(0.62*10^-3);               % deltaB
        interpolatBd=latdifBd/15;
        calclatBd=interpolatBd*(75-lat);
        Bd=(0.62*10^-3)+calclatBd;

        latdifLd=(0.74)-(0.30);                             % deltaL
        interpolatLd=latdifLd/15;
        calclatLd=interpolatLd*(75-lat);
        Ld=(0.30)+calclatLd;
elseif (lat > maxVal5)
    disp('Latitude exceeds: 75°.')
        Bm=(4.53*10^-3);
        Lm=(1.55);
        Bd=(0.62*10^-3);
        Ld=(0.3);
end

if (NoS==0)
    disp('Northern hemisphere choosen')
        Dminnord=28;           %if Location is on the northern hemisphere
            B=(Bm-Bd)*cos((6.2832*(D-Dminnord)/(365.5)));
            L=(Lm-Ld)*cos((6.2832*(D-Dminnord)/(365.5)));
elseif (NoS==1)
    disp('Southern hemisphere choosen')
    Dminsud=210.265;        %if Location is on the southern hemisphere
        B=(Bm-Bd)*cos((6.2832*(D-Dminsud)/(365.5)));
        L=(Lm-Ld)*cos((6.2832*(D-Dminsud)/(365.5)));
end

Ts=Tsc+273.15;                                          % Convert station temperature from Celsius to Kelvin
T0=Ts+(B*hs);                                            % Scale the station temperature to sea level
Tm=T0*(1-(B*Rd)/(g*(L+1)));                             % Estimate the mean tropospheric temperature
es=(RHs/100)*6.112*(exp((17.67*Tsc)/(243.5+Tsc)));      % Estimate the station water vapor pressure
thyd=k1*(10^-6)*(Rd/gm);                                % Calculate the delay sensitivity terms for the hydrostatic (dry) component
twet=10^-6*(((k2*Tm+k3)*Rd)/(gm*(L+1)-B*Rd));             % Calculate the delay sensitivity terms for the wet component

% Tropospheric delay at the station
Stationhyd=thyd*Ps;                                     % Hydrostatic delay at the station
Stationwet=twet*(es/Ts);                                % Wet delay at the station

% Tropospheric delay at height h

for h=1:2650
    Khyd=(1-((B*h)/T0))^(g/(B*Rd));                         % Calculation of the hyd delay scaling factor
    Kwet=(1-((B*h)/T0))^((gm*(L+1)/(B*Rd))-1);              % Calculation of the wet delay scaling factor
   
    P0=Ps*(T0/Ts)^(g/(B*Rd));                               % Scale the station air pressure to sea level
    e0=es*(P0/Ps)^(L+1);                                    % Scale the station-level water vapor pressure to sea level

    Hhyd=thyd*Khyd*P0;                                      % The zenithal hydrostatic and wet delays at the hight h
    Hwet=twet*Kwet*(e0/T0);                                 % The zenithal wet delays at the hight h

    %Conversion of the zenithal delay to slant range
    Htropo=(Hhyd+Hwet)*(1/cosd(SLAi));
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2016, 17:44     Titel:
  Antworten mit Zitat      
Hallo? Very Happy
Ich habe echt keien andere Hilfe, wäre sehr froh um jeden Input
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.05.2016, 18:46     Titel:
  Antworten mit Zitat      
Hallo,

du musst auch auf der linken Seite indizieren. Hier ginge z.B.

Code:
Htropo(h) =(Hhyd+Hwet)*(1/cosd(SLAi));


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2016, 18:52     Titel:
  Antworten mit Zitat      
Danke dir Harald

Jedoch krieg ich beim Excelfile nur die ersteZeile (quer) gefüllt, jedoch sollte dies längs sein.

Code:
   %Conversion of the zenithal delay to slant range
    Htropo(h)=(Hhyd+Hwet)*(1/cosd(SLAi));
    dlmwrite('Troposphere.csv',Htropo);
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.05.2016, 18:59     Titel:
  Antworten mit Zitat      
Hallo,

dann transponiere die Variable?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2016, 20:00     Titel:
  Antworten mit Zitat      
Super, danke dir Harald

Gibt es eine schnellere Version? Das dauert ca 15min, bis das excelfile geschrieben ist und mein PC ist alles andere als lahm...

Code:
   %Conversion of the zenithal delay to slant range
    Htropo(h)=(Hhyd+Hwet)*(1/cosd(SLAi));
    HTROPO = transpose(Htropo);
    xlswrite('Troposphere.xls',HTROPO);
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.05.2016, 21:39     Titel:
  Antworten mit Zitat      
Hallo,

hast du den xlswrite-Befehl etwa in der for-Schleife drin??

Ansonsten: Profiler drüber laufen lassen und schauen, welche Zeilen die meiste Zeit brauchen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Dominiques
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 21.05.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2016, 22:05     Titel:
  Antworten mit Zitat      
war in der Schlaufe drin....^^ Embarassed

danke vielmals! Ich komme wieder, wenn was ist Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 24.05.2016, 22:20     Titel:
  Antworten mit Zitat      
Hallo,

ja, da hilft der schnellste Rechner nichts, wenn man ihn 2649 Mal die Datei überschreiben lässt ;)

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.