Cannot express limits in arrays

조회 수: 1 (최근 30일)
James Rodriguez
James Rodriguez 2020년 3월 5일
댓글: Sindar 2020년 3월 5일
I cannot think of the correct title for this problem I am having so I apolgise for that initially.
I have a rectangle with fixed area , 4345. The height(Y) and width(Z) however change. Y is equal to or greater then Z. Z has a minimum value 33 and Y has a maximum value 212. I belive the minimum of Y and maximum of Z must be sqrt(4345) . I am trying to create a code that will let me multiply Z and Y together, while understanding their product will always be A.
A = 4345;
Z = [33:0.000001:sqrt(A)];
Y = [sqrt(A):0.000001:212];
A = Z*Y;
IYY = 1/12*Z*Y^3
However the problem is the arrays are not consistent. I thought about not using the arrays, in hope MatLab would understand that ZY would always equal A, however it then wont recognise Z or Y. without the array I dont know how to implement my limits of each. My end goal is to be able to plot how IYY changes for diffrent values of Y.

채택된 답변

Sindar
Sindar 2020년 3월 5일
If the area is fixed, you don't want independent Y and Z:
A = 4345;
Z = [33:0.000001:sqrt(A)];
Y = A./Z;
Note that the condition Y<212 is guaranteed by Z>33 (4345/33 ~ 131)
  댓글 수: 1
Sindar
Sindar 2020년 3월 5일
If you have a condition that is not already satisfied (here, Y<=100), you can enforce it manually:
A = 4345;
Z = [33:0.000001:sqrt(A)];
Y = A./Z;
Z(Y>100) = [];
Y(Y>100) = [];

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2020년 3월 5일
편집: Walter Roberson 2020년 3월 5일
A = 4345;
Z = 33:0.000001:sqrt(A);
Y = A ./ Z;
Reconstructed_A = Z .* Y;
IYY = 1/2 * Z .* Y.^3;
subplot(1,2,1)
plot(Y, A-Reconstructed_A);
subplot(1,2,2)
plot(Y, IYY)

카테고리

Help CenterFile Exchange에서 Performance and Memory에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by