imfinfo nutzen < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:03 Mo 15.02.2010 | Autor: | JanaS |
Hallo!
Ich möchte ein Bild auf 6 verschiedene Arten umwandeln können mit Abfrage, wie ich umwandeln will.
Muss ich diese if-Abfragen mit feval machen? Wenn ja, wie sieht die Aufforderung dann aus?
Vielen Dank und viele Grüsse, Jana
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:56 Mo 15.02.2010 | Autor: | Frasier |
Hallo Jana,
das ist ja sehr durcheinander.
Was hat das alles mit "iminfo nutzen" zu tun?
Zuerst ist schon der Test auf Gleichheit falsch. Statt
if a = grey ...
muss es heißen
if a == grey ...
Also zwei Gleichheitszeichen, denn ein Ausdruck mit einem Gleichheitszeichen ist eine Zuweisung.
Und dann macht du den Fehler, grey nicht als String zu betrachten, aber a enthält ja einen String.
Ganz korrekt lautet der Vergleich also
if a == 'grey'
img = grey(img);
elseif a == 'invert'
img = ...
end
Als Alternative zu der if-elseif-Konstruktion bietet sich auch die switch-case-Anweisung an. Schau dir das mal in der Hilfe an.
lg
F.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 20:04 Mo 15.02.2010 | Autor: | JanaS |
> Hallo Jana,
> das ist ja sehr durcheinander.
> Was hat das alles mit "iminfo nutzen" zu tun?
>
> Zuerst ist schon der Test auf Gleichheit falsch. Statt
> if a = grey ...
> muss es heißen
> if a == grey ...
> Also zwei Gleichheitszeichen, denn ein Ausdruck mit einem
> Gleichheitszeichen ist eine Zuweisung.
> Und dann macht du den Fehler, grey nicht als String zu
> betrachten, aber a enthält ja einen String.
> Ganz korrekt lautet der Vergleich also
> if a == 'grey'
> img = grey(img);
> elseif a == 'invert'
> img = ...
> end
>
> Als Alternative zu der if-elseif-Konstruktion bietet sich
> auch die switch-case-Anweisung an. Schau dir das mal in der
> Hilfe an.
> lg
> F.
Hallo!
Sorry, ich hatte auch noch eine Frage zu imfinfo und habe wohl vergessen, den Titel zu ändern.
Ich habe das jetzt mit switch-case, wie Du vorgeschlagen hast, versucht, aber ich bekomme eine Fehlermeldung.
Das ist jetzt ein Unterprogramm, aber im Prinzip ja das gleiche und die Fehlermeldung für das Hauptprogramm sieht genauso aus.
??? Error using ==> ==
Array dimensions must match for binary array op.
Error in ==> [mm] C:\Programme\MatlabR12\work\bild_toolbox.m
[/mm]
On line 18 ==> switch a
Was muss ich jetzt anpassen? Ich habe das hier versucht, hat aber nicht geklappt:
a = dec2bin(a);
grey = dec2bin(grey);
Das Programm an sich läuft und tut das, was ich möchte, das habe ich ausprobiert. Nur die Abfragen funktionieren leider nicht :-(.
Viele Grüsse, Jana
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:56 Mo 15.02.2010 | Autor: | Frasier |
Hallo Jana,
da musst du dir die Hilfe etwas genauer ansehen.
Beim case macht man keinen Vergleich mehr mit ==.
Und dir ist ein schlechter Name für eine Variable, es gibt nämlich schon einen gleich lautenden Matlab-Befehl.
disp('In welche Richtung willst Du spiegeln?')
direction = input('Du kannst wählen zwischen "horizontal", "vertical" och "both": ','s');
switch direction
case 'horizontal'
img = img(end:-1:1,:,:);
case 'vertical'
img = img(:,end:-1:1,:);
case 'both'
img = img(end:-1:1,:,:);
img = img(:,end:-1:1,:);
end
lg
F.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:52 Di 16.02.2010 | Autor: | JanaS |
Dankeschön für Deine Hilfe! Meine Matlab-Hilfefunktion funktioniert leider nicht :-(. Ich bin gerade dabei, mir eine neue Matlab-Version zu bestellen, aber die ist noch nicht da.
Viele Grüsse, Jana
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:46 Di 16.02.2010 | Autor: | Frasier |
Hi Jana,
dass die Hilfe nicht läuft ist ja nicht so schön.
Aber für die jeweils aktuelle Matlab-Version und die zugehörigen Toolboxen gibt es die Hilfe auch online:
http://www.mathworks.de/access/helpdesk/help/helpdesk.html
Vielleicht kannst du das ja noch zur Überbrückung nutzen.
lg
F.
|
|
|
|