How to add "weight" to a 3D matrix

조회 수: 1 (최근 30일)
Jack Holland
Jack Holland 2018년 3월 27일
답변: Rik 2018년 3월 27일
Not sure of the terminology, but here is some context to hopefully explain it easier: I'm trying to create a function that is finding the optimum dimensions for an "I" beam. This "I" beam has 4 dimensions. a,b,c and h, where h is set and a,b and c can vary as shown in the code below. With h being the height, c the width and a,b being the height and width of one of the "cutout" sections. I picked 10 instances of a,b and c using linspace, and as a,b and c can vary independently I made a 10x10x10 matrix to express each possible outcome. However, I want this matrix (Area) to equal the area of the "I" beam which is given by the equation (Area=ch-2ba).
h = 30;
c = linspace(30,60,10);
b = linspace(1,h-2,10);
a = linspace(1,14,10);
A=[c.*b'];
area = zeros(10,10,10);
for k=1:10
area(:,:,k)=a(k);
end
Area=area.*A;
Is there a way to each of the 1x10 matrics in order to represent the area equation in the 10x10x10 matrix??Is there a way to each of the 1x10 matrics in order to represent the area equation in the 10x10x10 matrix??

채택된 답변

Rik
Rik 2018년 3월 27일
If you simply want to calculate Area=c*h-2*b*a for every combination of a, b, and c, the code below does that. If that is not what you mean, please explain what your code is not doing, and what the intended output is.
h = 30;
c = linspace(30,60,10);
b = linspace(1,h-2,10);
a = linspace(1,14,10);
[A,B,C]=meshgrid(a,b,c);
Area=C.*h-2*B.*A;

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by