Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

how can i print all the data from a computation in one line?

Asked by jelly on 5 Oct 2012

how can i do this? ex.

"for i=1:3

end"

desired output: i=[1 2 3] or i=123

..

ex.two

" x=input('input value of x: ') %then the user will enter x=[1:5]

y=x.*2;"

desired output: y=[2 4 6 8 10] or y=246810

..

ex three

N=35

while N>=2

        A=rem(N,2)
        N=floor(N/2)
end

and my desired output is A=11000 or A=[1 1 0 0 0]

how could i do this?

1 Comment

Walter Roberson on 6 Oct 2012

Please read the guide to tags and retag this question; see http://www.mathworks.co.uk/matlabcentral/answers/43073-a-guide-to-tags

jelly

Products

No products are associated with this question.

3 Answers

Answer by Thomas on 5 Oct 2012
Edited by Thomas on 5 Oct 2012
 ii=1:3

or

 ii=[1:3]

8 Comments

Thomas on 5 Oct 2012

I guess this is what u need

N=35;
count=1;
while N>=2
        A(count)=rem(N,2);
        N=floor(N/2);
 count =count+1;
end  
 A
jelly on 6 Oct 2012

Hey tom, yes this is really what i need, finally someone get what i mean, HAHA, thankyou for spending time understanding my problem, thanks bro.

Walter Roberson on 6 Oct 2012

You will find that this code will not print the result on one line at some point around 2^19 to 2^24 (depending exactly how wide your command window is set to.) Instead you will get a display such as

A =
Columns 1 through 18
     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0     0
Columns 19 through 20
     0     0

The output for A will also not have the [] that you required when there were spaces between the elements.

You can fix both of those problems by not displaying A and instead displaying

mat2str(A)
Thomas
Answer by Image Analyst on 5 Oct 2012

If you're going to allow the user to enter brackets and colons, then you're going to have to accept it as a string and either call eval(), or parse the string to extract out the individual numbers.

0 Comments

Image Analyst
Answer by Walter Roberson on 5 Oct 2012
N=35
fprintf('%s', 'A=');
while N>=2
          A=rem(N,2);
          fprintf('%d', A);
          N=floor(N/2);
  end
  fprintf('\n')

Note that your logic will fail to print the last binary digit.

0 Comments

Walter Roberson

Contact us