MATLAB Answers

How to display a string and matrix in MATLAB?

3,376 ビュー (過去 30 日間)
Amit Kumar
Amit Kumar 2014 年 2 月 18 日
編集済み: MathWorks Support Team 2018 年 11 月 27 日
Hi all,
This question can look very basic to some experts of this forum, however the question bugs me as I am not an expert.
Say I initialize A= 3x3 unit matrix.
I want to display:
The result is: followed by matrix A.
I tried fprintf, but I guess it doesn't support matrix and I got errors.
disp() doesn't support displaying text+matrix.
Any idea how to do this?

  0 件のコメント

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

採用された回答

Jos (10584)
Jos (10584) 2014 年 2 月 18 日
編集済み: MathWorks Support Team 2018 年 11 月 28 日
To display some text and a matrix, you can use two disp statements. This makes the code easy to understand and maintain.
For example, this code:
A = magic(3)
disp('The result is:')
disp(A)
Displays:
The result is:
8 1 6
3 5 7
4 9 2
If a one line solution is needed, you can use the num2str function to convert the matrix to a character array. This displays the contents of the array as a row vector though, changing the original shape of the matrix. To maintain the original shape of the matrix, use the first approach.
For example, this code:
A = magic(3)
disp(['The result is: [' num2str(A(:).') ']']) ;
Displays:
The result is: [8 3 4 1 5 9 6 7 2]

  6 件のコメント

表示 3 件の古いコメント
jandas
jandas 2014 年 2 月 18 日
It can be done even using fprintf but you need to know the matrix dimension and this approach is rather messy:
fprintf('The result is:\n%6.2f %6.2f %6.2f\n%6.2f %6.2f %6.2f\n%6.2f %6.2f %6.2f\n', A')
Jos (10584)
Jos (10584) 2014 年 2 月 18 日
I really fail to see why it should be a single command …
A = magic(3)
% To put it on a single line (using a single command)
disp(['The result is: [' num2str(A(:).') ']']) ;
% and if you insist on using fprintf, try this:
fprintf('\nThe result is: [') ;
fprintf(' %d ', A) ;
fprintf(']\n') ;
Amit Kumar
Amit Kumar 2014 年 2 月 20 日
Thanks!!

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

その他の回答 (1 件)

JIAN CUI
JIAN CUI 2016 年 10 月 26 日
Same question, sometimes I wish to print sentence like 'The sum of matrix 1...n is N', which involves a matrix [1 .. n] and variable N, as well as strings. So how am I suppose to print this one out? Thank you!

  0 件のコメント

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

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by