Azzera filtri
Azzera filtri

fprint f for a matrix

5 visualizzazioni (ultimi 30 giorni)
Lee
Lee il 18 Nov 2013
Risposto: Jan il 20 Feb 2023
say i have a nXm matrix of numbers and i need to print it with tabs between itch element how should it be done?
my matrix is
0 3 0
1 2 3
and i want to print it with nonthing where the zeros are and tabs beetween the numbers
i calld he matrix z
and tried this
fprintf('%d\t%d\t%d\n',z(1,1:end))
fprintf('%d\t%d\t%d\n',z(2,1:end))
but its not working
  1 Commento
Walter Roberson
Walter Roberson il 18 Nov 2013
To check: the output should be
[TAB]3[TAB]
1[TAB]2[TAB]3
?

Accedi per commentare.

Risposte (2)

Sarthak
Sarthak il 20 Feb 2023
Hi,
You can use a ‘for’ loop to do the same.
Please refer to the following code to understand the problem:
z = [0 3 0; 1 2 3];
[n, m] = size(z);
for i = 1:n
for j = 1:m
if z(i,j) == 0
fprintf('\t')
else
fprintf('%d\t', z(i,j))
end
end
fprintf('\n')
end
This will produce the following output:
3
1 2 3

Jan
Jan il 20 Feb 2023
x = [0 3 0; 1 2 3];
c = sprintfc('%g', x.');
c(x.' == 0) = {''};
fprintf('\t%s\t%s\t%s\n', c{:})
3 1 2 3
% Or:
s = compose("%g", x);
s(s == "0") = "";
fprintf('\t%s\t%s\t%s\n', s.')
3 1 2 3

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by