Create a 2D grid to map points over a transformation?

17 vues (au cours des 30 derniers jours)
Shovnik Paul
Shovnik Paul le 10 Fév 2022
I am trying to create two plots: one showing a grid on the top and the second showing a transformation applied to every point on the grid (bottom). Till now I have been able to figure out the following way which only works when the x and y ranges are symmetric:
x = linspace(-5, 5, 10);
y = linspace(-5, 5, 100);
[X, Y]= meshgrid(x, y);
figure
plot(X, Y, 'blue', Y, X, 'blue');
Z = X + i*Y;
W = Z.^2; % f(z) = z^2 for example
figure
plot(W, 'blue')
Z = Y + i*X;
W = Z.^2;
hold on;
plot(W, 'blue')
So far so good but say I want to create grid that is asymetrical with regards to the axes ranges. For example, the normalized impedance of a transmission line z = r + ix which can only have positive resistance r. Say want a grid in the region 0 < r < 10 and -10 < x < 10 with lines at intervals of 1 say. Is there a general way of doing this? (and perhas a better way of doing the above?)

Réponses (1)

Pratyush Swain
Pratyush Swain le 20 Mar 2025
Hi Shovnik,
For handling assymmetric grid ranges we can utilize a general approach as follows:
% Set up the assymmetric ranges %
r = linspace(0, 10, 11);
x = linspace(-10, 10, 21);
[R, X] = meshgrid(r, x);
% Convert to complex domain and apply conformal map %
Z = R + j*X;
W = Z.^2;
For plotting the original and transformed grid:
% Plotting horizontal and vertical lines separately %
figure;
plot(R, X, 'b');
hold on;
plot(R', X', 'b');
axis equal;
title('Original Grid');
% Instead of plotting plot(W), plotting row and column lines %
figure;
plot(real(W), imag(W), 'b'); hold on;
plot(real(W'), imag(W'), 'b');
axis equal;
title('Transformed Grid');
I have utilised the real function: https://www.mathworks.com/help/symbolic/sym.real.html and imag function: https://ww.mathworks.com/help/symbolic/sym.imag.html from the symbolic math toolbox.
Hope this helps.

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by