Plotting data against a combination array
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Raymond Elliott
am 26 Okt. 2023
Kommentiert: Raymond Elliott
am 27 Okt. 2023
I have created a combination array of two vectors ranging from -60 to +60 with increments of 1. I am assigning the first column of the combination matrix to X and the second column to Y. I am then looping through every combination of this array, and using the X and Y values to output my Z value, so for every unique combination of X and Y, I have a unique value for Z. I have tried doing a 3D plot, but am running into issues with the X and Y parameters because they are not linear. Any help is greatly appreciated!
alpha = 0;
L = 0.002;
W = 0.002;
x = 0;
y = 0;
h = 0.001;
thetaX_loop = -60:1:60;
thetaY_loop = -60:1:60;
combo = table2array(combinations(thetaX_loop,thetaY_loop));
Z = zeros(length(combo),4);
for i = 1:length(combo)
X = combo(i,1);
Y = combo(i,2);
deltaX = tand(thetaX)*cosd(alpha)*h;
deltaY = tand(thetaY)*cosd(alpha)*h;
A1 = (W-x-deltaX)*(L-y-deltaY);
A2 = (W+x+deltaX)*(L-y-deltaY);
A3 = (W-x-deltaX)*(L+y+deltaY);
A4 = (W+x+deltaX)*(L+y+deltaY);
Em = cosd(thetaX)*cosd(thetaY);
Z1 = A1*Em;
Z2 = A2*Em;
Z3 = A3*Em;
Z4 = A4*Em;
Z_tot = [Z1,Z2,Z3,Z4];
Z(i,:) = Z_tot;
end
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 26 Okt. 2023
alpha = 0;
L = 0.002;
W = 0.002;
x = 0;
y = 0;
h = 0.001;
thetaX_loop = -60:1:60;
thetaY_loop = -60:1:60;
[thetaX, thetaY] = ndgrid(thetaX_loop,thetaY_loop);
deltaX = tand(thetaX).*cosd(alpha)*h;
deltaY = tand(thetaY).*cosd(alpha)*h;
A1 = (W-x-deltaX).*(L-y-deltaY);
A2 = (W+x+deltaX).*(L-y-deltaY);
A3 = (W-x-deltaX).*(L+y+deltaY);
A4 = -(W+x+deltaX).*(L+y+deltaY);
Em = cosd(thetaX).*cosd(thetaY);
Z1 = A1.*Em;
Z2 = A2.*Em;
Z3 = A3.*Em;
Z4 = A4.*Em;
tiledlayout('flow');
nexttile(); surf(thetaX, thetaY, Z1, 'edgecolor', 'none'); colorbar(); title('Z1'); xlabel('{\theta}X'); ylabel('{\theta}Y');
nexttile(); surf(thetaX, thetaY, Z2, 'edgecolor', 'none'); colorbar(); title('Z2'); xlabel('{\theta}X'); ylabel('{\theta}Y');
nexttile(); surf(thetaX, thetaY, Z3, 'edgecolor', 'none'); colorbar(); title('Z3'); xlabel('{\theta}X'); ylabel('{\theta}Y');
nexttile(); surf(thetaX, thetaY, Z4, 'edgecolor', 'none'); colorbar(); title('Z4'); xlabel('{\theta}X'); ylabel('{\theta}Y');
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!