How to use a display a string in fprintf

I am trying to write a section that will display two numerical values, with their units followed after each. The units will change depending upon what the user enters as their units. So far what I have tried are these two things. I can get it to display the numerical value but if I try to include the units it adds "random" numbers.
fprintf('\n The numerical value is %g %g, and the second value is %g %g.\n', numerical_value_1,num2str(units), numerical_value_two,num2str(units))
fprintf('\n The numerical value is %g %g, and the second value is %g %g.\n', numerical_value_1, units, numerical_value_two, units)

 採用された回答

Image Analyst
Image Analyst 2021 年 3 月 19 日

1 投票

Try
units = 'mm'; % Whatever it is, assuming it's a string.
fprintf('\n The numerical value is %g %s, and the second value is %g %s.\n', numerical_value_1, units, numerical_value_two, units)
fprintf('\n The numerical value is %g %s, and the second value is %g %s.\n', numerical_value_1, units, numerical_value_two, units)

2 件のコメント

t sizzle
t sizzle 2021 年 3 月 19 日
This works perfectly thank you
Gregg Cole
Gregg Cole 2022 年 1 月 14 日
Worked well as well, thank you

サインインしてコメントする。

その他の回答 (1 件)

Isabelle Foster
Isabelle Foster 2021 年 3 月 19 日

2 投票

If I understand you correctly, it will help you.
Example:
a = {'cats', 'dogs', 'birds'};
as = sort(a);
fprintf('%s, ', as{1:end-1});
fprintf('and %s are animals.\n', as{end});

3 件のコメント

t sizzle
t sizzle 2021 年 3 月 19 日
To be honest I don't really understand your answer. I probably did a terrible job explaining so I will try to do a better job. For example, I am trying to display the maximum value of an array as well as the minimum value. Following each of these values will be a unit as chosen by the user.
So far, I have a variable which is equal to an array of numbers calculated based on what values a user inputs. Here is a basic example of how I have set up my code so far.
x = an array of values obtained after running user inputs through a formula
a = x (the size and values of x change based on what a user inputs)
units = a string input of what a user wants
maximum_value = max(x)
minimum_value = min(x)
fprintf(here is where i need help)
using the methods I have tried I can make it say
"the max is 45 and min is 20"
but when I try to include units I get something like
the max is 110
the max is 123 45
the min is 110
the min is 123 20
I would like to display a message using fprintf that basically says
The maximum value is 45 "units" and the minimum is 20 "units".
The 45, 20, and "units" will change based on what numbers and units a user inputs.
Oliveira Pereira
Oliveira Pereira 2021 年 9 月 10 日
thx
Gregg Cole
Gregg Cole 2022 年 1 月 14 日
Great, thanks!

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeTime Series Objects についてさらに検索

製品

リリース

R2020b

タグ

質問済み:

2021 年 3 月 19 日

コメント済み:

2022 年 1 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by