Verfasst am: 07.03.2014, 10:32
Titel: Probleme bei einer If-Abfrage
Servus,
ich hab ein eher triviales Problem, komme aber nicht auf die Lösung. Es soll zur Umrechnung von RGB-FarbWerten in XYZ-Werten eine if-else-Abfrage durchlaufen werden. Leider wird die if-Schleife immer übersprungen auch wenn die Bedingung erfüllt ist. Matlab springt fragt hier immer sofort die das Argument unter else ab.
Liegt es an der Form der Matrize? Habe diese auch schon in unendliche viele Formen gebracht
var_R=(R(1:100,: )/255); % Format 100x2048, alle < 1
var_G=(G(1:100,: )/255); % Leerzeichen-->sonst wir ein Smilie draus.
var_B=(B(1:100,: )/255);
if var_R >= 0.04045
var_R = ((var_R + 0.055)/1.055).^2.4; % Habe hier auch schonmal eine neue Variable mit vordefinierter Größe (100x2048) schreiben lassen var_R1, auch kein Erfolg else
var_R = var_R / 12.92;
end
deine Variable var_R ist ja eine ganze Matrix mit 100 Zeilen und einer gewissen Anzahl an Spalten. Schau dir mal an, was if macht, wenn eine ganze Matrix "wahr" sein muss, bzw wenn dann einige Elemte nicht wahr sind.
So wie ich das sehe, kann man dein Problem einfach durch logical indexing lösen. Probier mal:
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
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.