How to display the matrix as not 10^3 but as 10^1 for the values in the matrix

Y11=-((482.34i*10^-6));
Y22=-1.99i;
Y33=-2.14i;
Y44=-4.222i;
Y55=-7.761i;
Y66=(416.67*10^-6)- ((57.81*10^-9)*i);
Y77=(166.6*10^-9)- ((166.6*10^-6)*i);
Y12=0;
Y13=0;
Y14=0;
Y15=0;
Y16=0;
Y17=0;
Y21=0;
Y23=0;
Y24=1.351i;
Y25=0.581i;
Y26=0;
Y27=0i;
Y31=0;
Y32=0;
Y34=0;
Y35=0;
Y36=0;
Y37=0;
Y41=0;
Y42=1.3551i;
Y43=Y34;
Y45=0.871i;
Y46=0;
Y47=0;
Y51=Y15;
Y52=Y25;
Y53=0;
Y54=Y45;
Y56=0;
Y57=0;
Y61=0;
Y62=0;
Y63=0;
Y64=0;
Y65=Y56;
Y67=0;
Y71=0;
Y72=0;
Y73=0;
Y74=0;
Y75=0;
Y76=0;
% Ybus matrix
Ybus0 = [Y11,Y12,Y13,Y14,Y15,Y16,Y17; Y21,Y22,Y23,Y24,Y25,Y26,Y27; Y31,Y32,Y33,Y34,Y35,Y36,Y37; Y41,Y42,Y43,Y44,Y45,Y46,Y47; Y51,Y52,Y53,Y54,Y55,Y56,Y57; Y61,Y62,Y63,Y64,Y65,Y66,Y67; Y71,Y72,Y73,Y74,Y75,Y76,Y77,]
%convert Ybus to Zbus
Zbus0=inv(Ybus0);
How to display the matrix as 10^1?

1 Comment

"How to display the matrix as not 10^3 but as 10^1 for the values in the matrix"
Not easily, you would probably have to write your own display routine, e.g. using FPRINTF.
Here is a much better way to generate that matrix:
Y = zeros(7,7);
Y(1,1) = -(482.34e-6i);
Y(2,2) = -1.99i;
Y(3,3) = -2.14i;
Y(4,4) = -4.222i;
Y(5,5) = -7.761i;
Y(6,6) = (416.67e-6)-(57.81e-9i);
Y(7,7) = (166.6e-9)-(166.6e-6i);
Y(2,4) = 1.351i;
Y(2,5) = 0.581i;
Y(4,2) = 1.3551i;
Y(4,3) = Y(3,4); % superfluous
Y(4,5) = 0.871i;
Y(5,1) = Y(1,5); % superfluous
Y(5,2) = Y(2,5);
Y(5,4) = Y(4,5);
Y(6,5) = Y(5,6); % superfluous

Sign in to comment.

Answers (1)

Hi Gihahn,
I understand that you are facing an issue in displaying the matrix as 10^1 for the values in the matrix.
Please go through the following code sample, to proceed further.
Zbus0 = inv(Ybus0);
% Display Zbus0 with values formatted as 10^1
for row = 1:size(Zbus0, 1)
for col = 1:size(Zbus0, 2)
element = Zbus0(row, col);
elementStr = sprintf('%.2fe+01', real(element) / 10) + " + " + sprintf('%.2fe+01', imag(element) / 10) + "i";
fprintf('Z(%d,%d) = %s\n', row, col, elementStr);
end
fprintf('\n');
end
The code will print each element of the matrix Z in a format emphasizing its scaling by (10^1). The 'sprintf' function is used to format both the real and imaginary parts of each complex number separately, and then they are concatenated with an "i" to represent the imaginary unit. This approach provides clear visibility into the magnitude of each element relative to (10^1).
For a comprehensive understanding of the 'fprintf' and 'sprintf' MATLAB function, please go through the following documentation.
I hope this helps!

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products

Release

R2022b

Tags

Asked:

on 1 May 2024

Answered:

on 1 May 2024

Community Treasure Hunt

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

Start Hunting!