Is it possible to fprintf/sprintf each row of elements in a vector using loop?

17 次查看(过去 30 天)
I want to display the planets name and relative gravity such as: Moon gravity = 0.165 Earth gravity
One of the moderators recommended using a loop for this task. So, I'm trying to see if it's possible to write a code more effeciently using loops without having to print/display each planets one by one. Or is it not possible?
I've been playing around trying to find how to do it with no success, this is by far the closest I've gotten.
NOTE: the vectors are half than it is shown in the example
% Say for example
names = ["Earth"; "Venus"; "Mars"];
val = ["1.0000"; "0.8975"; '0.3915'];
planets = [names, val]
planets = 3×2 string array
"Earth" "1.0000" "Venus" "0.8975" "Mars" "0.3915"
% So I want to display the strings of each row together
% I created this loop that seems way too long
% When I used fprinf it ONLY shows the last row of strings without displaying -
% other rows
A = planets;
for B = 0:2
C = A(B + 1);
D = C';
E = append(C, " gravity = ");
F = [E(:,1)];
end
for G = 4:6
H = A(G);
I = append(H, " Earth gravity");
J = [I(:,1)];
end
fprintf('Grav. Acce.: ');
Grav. Acce.:
fprintf('%s ', F(:,1));
Mars gravity =
fprintf('%s \n', J(:,1));
0.3915 Earth gravity

采纳的回答

Stephen23
Stephen23 2021-11-26
编辑:Stephen23 2021-11-26
I would not use a loop:
N = ["Earth"; "Venus"; "Mars"];
V = ["1.0000"; "0.8975"; "0.3915"];
fprintf('%s %s Gravity\n', [V(:),N(:)].');
1.0000 Earth Gravity 0.8975 Venus Gravity 0.3915 Mars Gravity
  1 个评论
Daven Artajo
Daven Artajo 2021-11-26
编辑:Daven Artajo 2021-11-26
OMG! Thank you very much. I used up way too much of my time creating a long unnecessary loop system. This was way simplier. I learned another way to use fprintf too. Cheers mate :)
I changed it up a bit to print how I needed it:
N = ["Earth"; "Venus"; "Mars"];
V = ["1.0000"; "0.8975"; '0.3915'];
fprintf('%s gravity = %s Earth gravity \n', [N(:), V(:)].');
Earth gravity = 1.0000 Earth gravity Venus gravity = 0.8975 Earth gravity Mars gravity = 0.3915 Earth gravity

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by