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

Anfängerfrage2

 

jesus
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 31.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2008, 19:44     Titel: Anfängerfrage2
  Antworten mit Zitat      
Hallo,
ich habe eine frage zu folgenden aufgaben, die ich im rahmen eines seminars bearbeiten muss jedoch nicht ganz richtig hinbekomme:

1)Schreiben Sie eine Funktion Schaltjahr(XXXX), die als Argument ein Jahr
übergeben bekommt. Diese Funktion soll folgende Ausgaben haben:
„XXXX ist Schaltjahr“ – bei eingegebenem Schaltjahr
„XXXX ist kein Schaltjahr“ - sonst
Hinweis: mod(x,y) gibt den Rest aus der Division zweier Zahlen.
Beispiel: mod(9,4) = 1

Mein Ansatz dazu ist:
function s = schaltjahr(2008)
a=2011
if (mod(a,4) == 0) && mod(a,100) ~0
disp('Dies ist ein Schaltjahr')
else if(mod(a,100)==0) && mod(a,4)~0
disp('dies ist ein schaltjahr')
else if(mod(a,400) ==0)
disp('dies ist ein schaltjahr')
else('dies ist kein schaltjahr')
end
end
end

jedoch, weiß ich nicht, wie man das ganze als funktion schreibt und was das bedeutet. kann mir das jemand vllt erklären und eine lösungsmöglichkeit geben?

2)
und zu folgender aufgabe habe ich leider überhaupt keinen ansatz finden können:

Bei der Matlab Show (Vorlesung 2) haben Sie eine Funktion stringchange
gesehen, die ein Wort in einer Zeichenkette austauscht:
stringchange(‘Is is our house‘) -> ‘It is my house’
Diese können Sie nun selber programmieren. Hinweis: Benutzen Sie die Matlab
Hilfe (F1 oder Menüeintrag Help->Matlab Help) und suchen Sie dort unter Index
nach String. Sehen Sie sich die Einträge searching and replacing und searching
for an. Dort finden Sie die beiden Befehle, die Sie benötigen. Wenn das Wort nicht
in der Zeichenkette vorhanden ist, geben Sie bitte den folgenden Text aus: „Wort
XXXXX ist nicht in der Zeichenkette enthalten“. XXXXX ist das gesuchte Wort.

Würde mich freuen,wenn mir hierbei jemand helfen kann bis morgen, da ich dies bald abgeben muss.
vielen dank im voraus,
Grüße
Private Nachricht senden Benutzer-Profile anzeigen


rtn

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2008, 22:16     Titel:
  Antworten mit Zitat      
N'Abend,

finde gerade meinen Login nicht...

Teil 1 ist doch fast fertig:
Code:

function s = schaltjahr(a)
if (mod(a,4) == 0) && mod(a,100) ~= 0
    disp(strcat(num2str(a),' ist ein schaltjahr'));
elseif (mod(a,100)==0) && mod(a,4)~=0
    disp(strcat(num2str(a),' ist ein schaltjahr'));
elseif (mod(a,400) ==0)
    disp(strcat(num2str(a),' ist ein schaltjahr'));
else
    disp(strcat(num2str(a),' ist kein schaltjahr'));
end;
 

in eine Datei namens "schaltjahr.m" speichern, dann im Command Window per
>>schaltjahr(2008)
aufrufen.
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 18.11.2008, 23:20     Titel:
  Antworten mit Zitat      
Kann dir ja mal bei der 2.ten Frage ein bisschen helfen:

Code:

str='Dies ist ein Text';
rep='ein';
if ~isempty(regexp(str,rep))
return(strcat('Wort ', rep ' ist nicht in der Zeichenkette enthalten');
end
regexprep(str,rep,'kein');
 


Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2008, 12:35     Titel:
  Antworten mit Zitat      
Hallo,

die Zeile
Code:
elseif (mod(a,100)==0) && mod(a,4)~=0
    disp(strcat(num2str(a),' ist ein schaltjahr'));
könntest du eigentlich auch weglassen (mir ist z.Z. keine Zahl bekannt, die durch 100, aber nicht durch 4 ohne Rest teilbar ist).

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
jesus1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2008, 19:52     Titel: frage
  Antworten mit Zitat      
hallo,

danke ersteinmal für die schnelle antwort.
habe noch zwei fragen zu der ZWEITEN aufgabe:
verstehe nicht, wie man das ganze als funktion schreiben kann.kann mir da vielleicht nochmal jemand bis morgen was zu sagen?
und wenn ich die befehle in matlab derart eingebe, wie es oben von olli beschrieben wird, kommt leider immer eine fehlermeldung in matlab.

wäre echt toll,wenn mir dabei noch jemand weiterhelfen könnte.
viele grüße!
 
rtn

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.11.2008, 23:00     Titel:
  Antworten mit Zitat      
>> help function
 
jesus1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.11.2008, 00:15     Titel: frage
  Antworten mit Zitat      
hallo,
ich habe mir die help funktion dazu ja angesehen, jedoch habe ich es leider nicht hinbekommen, die richtige funktion zu schreiben.
habe folgenden ansatz, aber komme leider nicht weiter.

function str = stringchange
str='Dies ist ein Text';
rep=' ein';
if ~isempty(regexp(str,rep))
str = (strcat('Wort ', rep, ' ist nicht in der Zeichenkette enthalten'));
end
regexprep(str,rep,'kein');

bitte dringend um hilfe!
grüße und vielen dank!
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 21.11.2008, 18:20     Titel:
  Antworten mit Zitat      
Hallo jesus,

Du musst Dir überlegen, welche Elemente in Deiner Funktion variabel sein müssen (der alte String, das zu ersetzende Wort,...) und was herauskommen soll (eine Ausgabe im Command Window, eine neue String-Variable, ...).

Dann kannst Du im Code vom Oli die festen Werte (beispielsweise rep = ' ein') durch Deine variablen ersetzen. Und dann musst Du noch den kleinen Fehler in seinem Code finden. Wink

Die erste Zeile sollte irgendwie so aussehen:

Code:
function output = stringchange(Input1,Input2,Input3)


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 21.11.2008, 20:23     Titel:
  Antworten mit Zitat      
Naja meine Fehler mußt du nicht umbedingt korrigieren:

Code:

if ~isempty(regexp(str,rep))
    output=['Wort: ', rep, ' ist nicht in der Zeichenkette enthalten'];
    return;
end
 


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



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 - 2024 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.