How do I make the same output using the fprintf() command instead of disp()?
1 view (last 30 days)
Show older comments
Hello, this is my first question on here and I notice Answerers are sometimes frustrated by questions, so I hope this question does not anger anyone. I am trying to use fprintf() instead of the disp() and have the exact same output. Here's the editor window and output:
editor:
A = [1 2 3;4 5 6;7 8 9];
[m,n] = size(A);
for i = 1:m
for j = 1:n
disp(['A(',num2str(i),',',num2str(j),') = ',num2str(A(i,j))])
end
end
output:
>> Practice9
A(1,1) = 1
A(1,2) = 2
A(1,3) = 3
A(2,1) = 4
A(2,2) = 5
A(2,3) = 6
A(3,1) = 7
A(3,2) = 8
A(3,3) = 9
>>
%Also, this is what I attempted to do, but got a 'horzcat' error
%what is that???
A = [1 2 3;4 5 6;7 8 9];
[m,n] = size(A);
for i = 1:m
for j = 1:n
fprintf(['A(','(%s,','%s) = ','%f',i,j,A])
%% disp(['A(',num2str(i),',',num2str(j),') = ',num2str(A(i,j))])
end
end
6 Comments
Accepted Answer
madhan ravi
on 14 Nov 2018
Edited: madhan ravi
on 14 Nov 2018
Replace disp with:
fprintf('A(%d,%d)=%d\n',i,j,A(i,j))
5 Comments
madhan ravi
on 14 Nov 2018
Edited: madhan ravi
on 14 Nov 2018
https://www.mathworks.com/matlabcentral/answers/35676-why-not-use-square-brackets#answer_252096 , there is nothing wrong in it but it's superflous
Adam
on 14 Nov 2018
Well, where you use them you are also encompassing the arguments that are to be inserted in place of the placeholder %d formatting specifiers. These need to be distinct arguments to fprintf, they are not part of the string first argument. Other than that, as madhan ravi says, they are mostly just superfluous if you are putting them only around the initial string part of the argument.
disp is different because you have to put together the combination of bits of the string and numeric components which have to be converted to string yourself, thus you concatenate all these components.
fprintf does that for you via those %d format specifiers so that you can just give a single formatting string, then supply the arguments that will be inserted in-place of those format specifiers. fprintf will handle converting them to the type you request (e.g. %i converts to an integer, %f to float, %s inserts as a string, etc).
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!