How do I print only one element of a char array with same elements?

So, here is the very simple practice code:
clear all
close all
clc
x=1:20;
for i=1:20
if x(i)<=5
say=('Hi')
elseif x(i)>5 && x(i)<=10
say=('Hello')
elseif x(i)>10 && x(i)<=15
say=('How is it going?')
else
say=('Fine')
end
end
I am new to Matlab and I got stuck on a simple point where I need to print any of the answers only once. I know that I'm gonna get 4 different answers 5 times each, but I want to get only one of each answer. One which will stand for the rest of the same answers. For example, just: 'Hi', 'Hello', 'How is it going', 'Fine' instead of getting each of them 5 times. Thanks in advance!
say =
Hi
say =
Hi
say =
Hi
say =
Hi
say =
Hi
say =
Hello
say =
Hello
say =
Hello
say =
Hello
say =
Hello
say =
How is it going?
say =
How is it going?
say =
How is it going?
say =
How is it going?
say =
How is it going?
say =
Fine
say =
Fine
say =
Fine
say =
Fine
say =
Fine
>>

Answers (1)

x=1:20;
[test1,test2,test3,test4]=deal(0)
for i=1:20
if x(i)<=5 & test1==0
say=('Hi')
test1=1;
elseif x(i)>5 && x(i)<=10 & test2==0
say=('Hello')
test2=1;
elseif x(i)>10 && x(i)<=15 & test3==0
say=('How is it going?')
test3=1;
elseif test4==0
say=('Fine')
test4=1;
end
end

3 Comments

oh I see. Does it mean that when you assign test# = 1, it breaks?
if x(i)<=5 & test1==0
say=('Hi')
test1=1;
So basically I can put anything here, right? Like if it was y=5 first, and then y=6.
x=1:20;
y=5
for i=1:20
if x(i)<=5 & y==5
say=('Hi')
y=6;
elseif x(i)>5 && x(i)<=10 & y==6
say=('Hello')
y=7;
elseif x(i)>10 && x(i)<=15 & y==7
say=('How is it going?')
y=8;
elseif y==8
say=('Fine')
y=9;
end
end
Thank you very much! It is all clear for me now.
But definitely your method is much better than the one I posted now. Because it might be that the conditions are met in another order, not successively. Then my bit of code will not work. Thank you again!
Sorry, I got stuck again, because in my code where I tried to apply this method, my requirement is to run it 8000 times, and I need all 8000 iterations. But as soon as I assign task=1, it breaks and it will not continue anymore..is there any other solution I can use? would appreciate a lot!

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 9 Jul 2016

Commented:

on 10 Jul 2016

Community Treasure Hunt

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

Start Hunting!