2016-09-18 4 views
-6

Ich habe ein Problem in Bezug auf die folgenden Aussagen. Wenn ich den Code ausführe, geht es nicht in die benötigte Bedingung und macht die Transformationen nicht, die es sollte. Jeder Fehler, den ich nicht erkennen kann? Danke im Voraus.Mehrere wenn Bedingung in Matlab

clear all; 
clc; 
recenica=('STEFI'); 
i=1; 
dolzina = length(recenica) 

while i<=length(dolzina) 
prva=recenica(i); 
vtora=recenica(i+1); 


if recenica(i)==('P' | 'M' | ' ') 
    prva='B'; 
end 
if recenica(i)==('U') 
    prva='O'; 
end 
if recenica(i)==('V') 
    prva='F'; 
end 

if recenica(i)==('G' | 'X' | 'Y' | 'J' | 'I') 
    prva='K'; 
end 

if recenica(i)==('L' | 'T' | 'D' | '3' | '2') 
    prva='N'; 
end 

if recenica(i)==('Z' | '1' | 'C') 
    prva='S'; 
end 

if recenica(i)==('5' | 'Q' | '4') 
    prva='6'; 
end 

if recenica(i)==('R') 
    prva='H'; 
end 


if recenica(i+1)==('P' | 'M' | ' ') 
    vtora='B'; 
end 
if recenica(i+1)==('U') 
    vtora='O'; 
end 
if recenica(i+1)==('V') 
    vtora='F'; 
end 

if recenica(i+1)==('G' | 'X' | 'Y' | 'J' | 'I') 
    vtora='K'; 
end 

if recenica(i+1)==('L' | 'T' | 'D' | '3' | '2') 
    vtora='N'; 
end 

if recenica(i+1)==('Z' | '1' | 'C') 
    vtora='S'; 
end 

if recenica(i+1)==('5' | 'Q' | '4') 
    vtora='6'; 
end 

if recenica(i+1)==('R') 
    vtora='H'; 
end 


a=strcat(prva,'.jpg'); 
b=strcat(vtora,'.jpg'); 

generiranje=Test3(a,b); 
i=i+1; 
end 
+0

Sehr geehrte OP, "es geht nicht in die benötigte Bedingung und macht nicht die Transformationen, die es sollte. Jeder Fehler, den ich nicht erkennen kann? "Klingt extrem vage und bietet keine ausreichenden Informationen zur Beantwortung Ihrer Frage. Bitte lesen Sie den Artikel http://stackoverflow.com/help/how-to-ask und editieren Sie Ihre Frage entsprechend – brainkz

+0

Logisches ODER '|' wird vektorisiert. Dies bedeutet, dass es Vektoren und nicht Bits in MATLAB vergleicht. Zum Vergleichen von Bits verwenden Sie 'bitor'. – patrik

Antwort

0

Ihre MATLAB IF Syntax sieht seltsam aus:

Sie mit

meinen Sie
if recenica(i)==('P' | 'M' | ' ') 

zu Code:

if (recenica(i)=='P') || (recenica(i)=='M') || (recenica(i)==' ') 

Möglicherweise möchten Sie auch Switch/Case-Struktur verwenden:

Someth ing like:

switch recenica(i) 
    case {'P','M', ' '} 

end 
+0

Sie können auch [ismember] (http://se.mathworks.com/help /matlab/ref/ismember.html), das würde dies konditionieren: 'ismember (recencia (i), {'P', 'M', ''}). In diesem Fall würde ich einen Schalter bevorzugen . –