MATLAB Answers

# using fprintf for answers

6 views (last 30 days)
alexis cordova on 26 Jul 2019
Edited: per isakson on 27 Jul 2019
Trying to get my answer to look like the table below
these are my results it is a little off and answers are also in exponential form trying to change that too
fprintf('\r\r%s\n', ' CP 2 - STRAIN TRANSFORMATION FOR UNIFORM MOTION')
fprintf('\r\r%s\n', 'Material Properties ')
fprintf('%s%8.3f\n', 'Youngs Modulus' ,YM )
fprintf('%s%8.3f\n', 'Poissons Ratio' ,v )
fprintf('\r\r%s\n', 'Deformation Gradient')
fprintf('%s%8.3f\n', ' ---------F------- ' ,F)
fprintf('\r\r%s\n', 'Strain Tensor\n')
fprintf('%s%8.3f\n', '-------E------',E)
fprintf('\r\r%s\n', 'Principal Strains')
fprintf('%s%s%8.3f\n', ' e1 ',E1)
fprintf('%s%s%8.3f\n', ' e2 ',E2)
fprintf('\r\r%s\n', 'Principal Stress')
fprintf('%s%s%8.3f\n', 's1 ',S1)
fprintf('%s%s%8.3f\n', ' e2 ',S2,'\')
My results are

#### 0 Comments

Sign in to comment.

### Accepted Answer

Walter Roberson on 26 Jul 2019
fprintf('%s%8.3f\n', '-------E------',E)
Your E is a vector with at least 4 values. If we assume that E has 4 values, then your code is equivalent to
fprintf('%s%8.3f\n%s%8.3f\n%s', '-------E------',E(1), E(2), E(3), E(4))
which will try to display E(2) with a %s format.
More likely to be correct would be
fprintf('%s\n', '-------- E --------');
fprintf('%8.3f %8.3f\n', E.'); %notice the transpose
Without the transpose, the first line would display E(1) and E(2) and the second would display E(3) and E(4) -- but those are E(1,1), E(2,1), E(1,2), E(2,2) so values "down" the columns would be displayed across.

#### 0 Comments

Sign in to comment.

### More Answers (1)

per isakson on 27 Jul 2019
Edited: per isakson on 27 Jul 2019
This supplements Walter's answer.
Replace
fprintf('\r\r%s\n', 'Strain Tensor\n')
by
fprintf('\r\r%s\n', 'Strain Tensor')
and replace
fprintf('%s%s%8.3f\n', ' e1 ',E1)
fprintf('%s%s%8.3f\n', ' e2 ',E2)
by
fprintf('%s= %11.6f ', ' e1 ', E1 );
fprintf('%s= %11.6f\n', ' e2 ', E2 );
and replace
fprintf('%s%s%8.3f\n', 's1 ',S1)
fprintf('%s%s%8.3f\n', ' e2 ',S2,'\')
by
fprintf('%s= %11.6f ', ' s1 ', S1 );
fprintf('%s= %11.6f\n', ' s2 ', S2 );
Adjust the number of spaces as needed.
Add the "Stress Tensor" group.

#### 0 Comments

Sign in to comment.

Sign in to answer this question.

R2018b