在一系列计算中使用向量的每个元素

时间:2019-06-13 19:30:25

标签: arrays matlab matrix vector calculation

我正在尝试编写在计算中使用向量中的一组变量的MATLAB代码。我试图对向量中的每个值运行相同的公式,然后将每个结果存储在新向量中。

目标是根据各种半径大小来计算和绘制建造水箱的成本。在计算中,我有一个圆柱罐和一个半球形顶部。储罐容积的准确值为500m ^ 3。对于半球形顶部,罐的成本为$ 400 / m ^ 2表面积,对于圆柱体,罐的成本为$ 300 / m ^ 2表面积。我知道我需要使用元素明智的运算符,但是我得到的是奇怪的,不切实际的结果,这使我相信我使用的是错误的。

 this.editExpenseSubject.pipe(
        switchMap(editExpense =>
            forkJoin(
               this.expenseDetails$.pipe(first()),
               this.expenseReceipts$.pipe(first()),
            ).pipe(
               map(values => ([editExpense, ...values]))
            )
          )
        )

我期望半径在2m到10m之间的所有正值都有一条曲线,而成本正值是。由于某种原因,我获得的结果为负值,并且根据得出的图,半径为8m时水箱的成本是免费的,这是没有道理的。

1 个答案:

答案 0 :(得分:0)

滤除h <0

rTank = 2:0.5:10;
h = 250./(pi*rTank)-1/3*rTank.^2;
good_h=h(h>0);
good_rTank=rTank(h>0);
cost = 2*pi*400*good_rTank.^2 + 2*pi*good_h*300.*good_rTank;
plot(good_rTank, cost)