How to add "weight" to a 3D matrix
조회 수: 1 (최근 30일)
이전 댓글 표시
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??
댓글 수: 0
채택된 답변
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!