How do I use fprintf to show the entire array in one ouput statement
537 ビュー (過去 30 日間)
古いコメントを表示
>>
A = [-4 2 -7 6 8; 4 -5 8 -1 0; 0 -4 3 1 10; -8 7 -10 5 -2];
[rows cols] = size(A);
Z = zeros(size(A));
for x = 1:1:rows
for y = 1:1:cols
if A(x,y) <= 4
Z(x,y) = A(x,y);
end
end
end
fprintf('%i\n',Z);
My ouput statement I am getting is
-4
4
0
-8
2
-5
-4
0
-7
0
3
-10
0
-1
1
0
0
0
0
-2
Instead of
-4 2 -7 0 0
4 -5 0 -1 0
0 -4 3 1 0
-8 0 -10 0 -2
0 件のコメント
採用された回答
Jan
2017 年 4 月 5 日
編集済み: Jan
2017 年 4 月 5 日
fprintf('%i %i %i %i %i\n', Z.');
or:
fprintf('%4i %4i %4i %4i %4i\n', Z.');
Note that the matrix must be transposed, because the elements are store columnwise, but the display is written in rowwise order.
By the way: It is easier without loops:
Z = zeros(size(A));
index = (A <= 4);
Z(index) = A(index);
Or:
Z = A;
Z(Z > 4) = 0;
その他の回答 (2 件)
Jay Stanley
2019 年 6 月 1 日
Tunc Durmaz,
If you do not know the dimension of your array you can get its size and replicate a template based on those dimensions
Here's a minimum working example
matrix = magic(4) % example matrix
[mrows, ncols] = size(matrix)
outputstr = ['%' num2str(mrows) 'i '] % template for the string, you put your datatype here
outputstr = repmat(outputstr, 1, ncols) % replicate it to match the number of columns
outputstr = [outputstr '\n'] % add a new line if you want
fprintf(outputstr, matrix.') % write it
For completeness sake there is another trivial solution that does not use repmat via the loop
matrix = magic(4) % example matrix
[mrows, ncols] = size(matrix)
outputstr = ['%' num2str(mrows) 'i ']
template = ['%' num2str(mrows) 'i '] % template for the string, you put your datatype here
outputstr = template
for i = 2:mcols
outputstr = [outputstr template]
end
outputstr = [outputstr '\n'] % add a new line if you want
fprintf(outputstr, matrix.') % write it
Tunc Durmaz
2019 年 5 月 13 日
What if we do not know the dimension of Z? Any way to address this in fprintf?
Cheers,
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Argument Definitions についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!