Looping Program to Generate Table of Values: A+2 from 3 to 15 using M-File

  • Thread starter Thread starter flamex1992
  • Start date Start date
Click For Summary

Discussion Overview

The discussion revolves around writing a MATLAB program that utilizes looping to generate a table of values based on a specified pattern. The initial query seeks clarification on how to produce a table of values for A and A+2, and later expands to include A+4 and A+6. Participants explore various coding approaches and seek assistance with MATLAB syntax and logic.

Discussion Character

  • Technical explanation
  • Homework-related
  • Debate/contested

Main Points Raised

  • One participant questions the correctness of their initial MATLAB code, which only displays 'A+2' without calculating values.
  • Another participant suggests an alternative approach using a for loop to generate the required pairs of values.
  • A participant expresses confusion about the assignment and requests further details on the requirements.
  • There is a discussion about the possibility of including multiple calculations (A+4 and A+6) within a single for loop in MATLAB.
  • Suggestions are made to use matrices and the fprintf function for displaying results in a tabular format.
  • Participants discuss a separate question regarding converting centimeters to feet and inches, with various suggestions on how to format the output correctly.
  • One participant struggles with understanding the logic behind the conversion and seeks alternative display methods.
  • Another participant inquires about calculating the product of odd integers and receives clarification on the appropriate MATLAB function to use.

Areas of Agreement / Disagreement

Participants generally agree on the use of for loops in MATLAB for generating the required tables, but there is no consensus on the best approach to display the results or on the logic for the conversion problem. Multiple competing views and methods are presented throughout the discussion.

Contextual Notes

Some participants express uncertainty regarding the specific requirements of the assignment, and there are unresolved questions about the implementation details of the MATLAB code. The discussion includes various coding strategies, but no definitive solutions are established.

Who May Find This Useful

This discussion may be useful for students learning MATLAB programming, particularly those working on assignments involving loops and data display, as well as those seeking help with conversion problems in programming contexts.

flamex1992
Messages
6
Reaction score
0
Question
Write a program that utilizes looping to produce the following table of values:

A --A+2
3 --5
6 --8
9 --11
12 --14
15 --17

and my input is with using the m-file

for A=3:3:15
display ('A+2')
A=A+2
end


is it correct?
 
Physics news on Phys.org
Your program gives only the values of A+2. Do you want table of values?
And the line
display('A+2')
is not required. It simply displays 'A+2' and won't calculate anything.
It will be better if you write like this

for i=1:5 % you need five pairs in table
x(i)=3*i;
y(i)=x(i)+2;
end
display(x)
display(y)
 
tis is the question my lacturer giv it to me.. I'm still not really understand wat the question wan.. can u tell the detail pls?
i wuld aprreciate any helps

Write a program that utilizes looping to produce the following table of values:
A A+2 A+4 A+6
3 5 7 9
6 8 10 12
9 11 13 15
12 14 16 18
15 17 19 21
 
Have you been asked to do it in Matlab?
You can use 'for loop' procedure in Matlab to accomplish this.
Start with small examples. Understand how to write coding for simple problems which will help you to realize the table you want.
 
yup do it in matlab..

'for loop' procedure is like how?
the one tat i doing is called for loop?
 
Yes, the lines I mentioned at #2 gives output for A A+2
Within the same loop itself you can add codes for getting A+4 and A+6
 
thx.. u have help me a lot now..
then again, how to add eq A+4 and A+6 in the same M-file rather than makin 3 m-files for 3 equations... isit possible btw?
 
flamex1992 said:
thx.. u have help me a lot now..
then again, how to add eq A+4 and A+6 in the same M-file rather than makin 3 m-files for 3 equations... isit possible btw?

Yes it is possible to do in single for loop.
Let me explain what is happening

for i=3:3:15

bla..
bla..

end

In the above for loop, the lines between 'for' and 'end' are executed 5 times for the values i=3,6,8,12,15.

if I include

disp(i)
disp(i+2)
disp(i+4)
disp(i+6)


between 'for' and 'end' it will display 3 5 7 9 in the first run
and 6 8 10 12 in the second run and so on.

Note in the line

for i=k:m:n

variable 'i' assumes value 'k' in first run value 'k+m' in second run and it continues till it equals value of n.
 
I would save the values as rows in a matrix and use fprintf to display a table.
 
  • #10
can help my friend give a clue on her question ?
we both don't have a clue on these question :confused:

a)
Write a program to convert centimeters to feet and inches. The input is number (floating, 2 decimal), in centimeters, the output should be the equivalent number of feet (integer) and inches (floating, 1 decimal), with the inches given to an accuracy of one decimal place.
Assume:
1 inch = 2.54 cm
12 inches = 1 foot

If the input value is 333.3, the output format should be:
333.3 centimeters is 10 feet 11.2 inches.
 
  • #11
You should be able to figure out the conversion logic, but for the display you can use something like:
Code:
fprintf('%1.1f centimeters is %i feet %1.1f inches.\n', ans);
(ans is a vector listing cm, ft, in)
You'll want to read about the fprintf function and string formatting.
 
  • #12
is the command right for the convert question? it seems i din understand about the end part like you stated 'fprintf' part..

clear all
close all
clc
C = input('cm: ');
X = (1/2.54)*C;
inch=X
foot=X*1/12
 
  • #13
I think it wants you to give the answer such that, if the answer is 130 in, it is displayed as 10 ft 10 in.

You have the conversion factor, 1 in = 2.54 cm. You can use this to get the value in inches. You can use integer division (idivide in MATLAB) to get how many feet there are, and then find the remainder/modulus too get the number of inches. (Either rem or mod in MATLAB.)

What you currently have won't accomplish that.

I suggest you work on the basic logic first before worrying about formatting and displaying the answer.
 
  • #14
Hmm...
i guess i get the picture of it...
but is there any other way to display the answer other than the command that u gave above?
 
  • #15
I suppose you could use a series of disp commands (I don't remember whether disp has an automatic newline \n).

Edit: see the documentation for http://www.mathworks.com/help/techdoc/ref/disp.html":
MATLAB Documentation said:
Example 3 — Display multiple items on the same line

Use any of the following techniques to display multiple items on the same line:

1. Concatenate all substrings together using the [] operator. Convert any numeric values to characters using the num2str function:
Code:
    name = 'Alice';   age = 12;
    str = [name, ' will be ', num2str(age), ' this year.']
Alice will be 12 this year.

fprintf and sprintf are pretty useful, though.
 
Last edited by a moderator:
  • #16
wow i hardly to understand that.. currently stuck like slayer did.. I'm unable to get the answer X cm equal X foot X inch

-----------------------

1 more thing how to the product of the odd interger for 1 to 15..
currently doing
for a=1:2:15
display('odd integers');
display(a) ;
end

but it don't show the product off odd interger.. try put sum but still didnt giv an answer =(
any idea?
 
  • #17
sum() won't give you a product!

Try prod(a)
 

Similar threads

  • · Replies 5 ·
Replies
5
Views
1K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 6 ·
Replies
6
Views
5K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 9 ·
Replies
9
Views
5K
  • · Replies 7 ·
Replies
7
Views
5K