How to add "weight" to a 3D matrix

4 vues (au cours des 30 derniers jours)
Jack Holland
Jack Holland le 27 Mar 2018
Réponse apportée : Rik le 27 Mar 2018
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??

Réponse acceptée

Rik
Rik le 27 Mar 2018
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;

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by