필터 지우기
필터 지우기

How to get answer from this else if code

조회 수: 1 (최근 30일)
Fateme Jalali
Fateme Jalali 2016년 3월 7일
편집: Walter Roberson 2016년 3월 7일
Hello.I wrote matlab code below. when I change value of parameter num_modes to 5 or 6, the answer should be 'result2:graphic or <text> block' or two next conditions in program.But for every values of num_modes my code shows one of first two if results.can any one help me to correct my codes?
clc;
clear all;
close all;
%calculate comulative probibility
num_modes=5
matrix_comulative_probibility(1)=1.5;
matrix_comulative_probibility(2)=0.562;
matrix_comulative_probibility(3)=1.5;
matrix_comulative_probibility(4)=0;
T1=0.3;
T2=128;
T3=70;
%if num_modes==0
%disp('result2:smooth block or background')
if num_modes==1&&matrix_comulative_probibility(1)>T1;
disp('result2:background block');
elseif 1<num_modes<=3&&matrix_comulative_probibility(1)+matrix_comulative_probibility(2)>T1&&0<=abs(matrix_comulative_probibility(1)-matrix_comulative_probibility(2))<=1.5;
disp('result2:text block');
elseif num_modes<=4&&matrix_comulative_probibility(1)+matrix_comulative_probibility(2)+matrix_comulative_probibility(3)+matrix_comulative_probibility(4)>T1;
disp('result2:graphic or <text> block');
elseif num_modes>4&&matrix_comulative_probibility(1)+matrix_comulative_probibility(2)+matrix_comulative_probibility(3)+matrix_comulative_probibility(4)<T3;
disp('result2:image block');
else
disp('result2:undetected <image> block');
end

채택된 답변

Walter Roberson
Walter Roberson 2016년 3월 7일
편집: Walter Roberson 2016년 3월 7일
1<num_modes<=3 means ((1<num_modes)<=3) . The (1<num_modes) part will return either 0 (false) or 1 (true), and 0 and 1 are both <=3 so the condition will always be true.
You need
1 < num_modes && num_modes <= 3

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by