在Matlab中有多个if条件

时间:2016-09-18 22:59:38

标签: matlab if-statement

我对以下陈述有疑问。当我运行代码时,它不会进入所需的条件,并且不会进行应该进行的转换。我发现的任何错误?提前致谢。

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

1 个答案:

答案 0 :(得分:0)

您的MATLAB IF语法看起来很奇怪:

你的意思是

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

代码:

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

您可能还想使用开关/案例结构:

类似的东西:

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

 end