首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB循环函数问题

MATLAB循环函数问题
EN

Stack Overflow用户
提问于 2015-04-19 16:47:42
回答 1查看 55关注 0票数 0

我正在为我正在做的一个项目简化一些计算。计算了三种不同孔隙面积、三种材料类型的三种模型的法向应力、应变、位移和剪应力、应变。我计算的每个参数总共应该有9个值。

我一直在AoP的*上得到错误,而且当我检查AoP的计算时,它只显示pi值,并且忽略它应该是第一个p^2值乘以π乘以25。

以下是我的代码:

代码语言:javascript
复制
% Height[m]
h= 0.0045;
%Length o[m]
l=0.0025;
%cross-sectional area [m]
a=h*l;
%Force [N]
f=1000;   
% three pores [m]
p=[0.00150 0.00175 0.00200]
% three materials E used 
E=[ 1.138e12 6.96e10 1.25e-3]
% three materials G used
G=[ 4.20e10 2.630e10 2.4e10]
AoP=25*(pi()*(p)^2)
for p=1:3 E=1:3 G=1:3
    AoP=25*(pi()*(p)^2) 
    A=a-AoP
    %Normal Stress 
    NSTRESS =f/A
    %Normal Strain
    NSTRAIN = NSTRESS/E
    %Normal Displacement 
    NormalDisplacment = NSTRAIN*h
    %Shear stress
    SStress=f/a
    %Shear strain 
    SStrain=SStress/G
    %Shear displacement
    SDisplacement =  SStrain*h
end

disp (NSTRESS)
disp (NSTRAIN)
disp (NormalDisplacment)
disp (SStress)
disp (SStrain)
disp (SDisplacement)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-19 17:30:44

您的循环正在将p(和E和G)重置为1、2和3,一次只能循环一次。您需要使用一个整数作为循环迭代器,然后使用该整数作为p的下标:

代码语言:javascript
复制
for ip = 1: 3
    for iE = 1: 3
        for iG = 1: 3
            AoP=25*(pi*p(ip)^2) 
        end
    end
end

每次您想在计算中使用pEG时,都需要给它们各自的下标:

代码语言:javascript
复制
p(ip)
E(iE)
G(iG)

圆周率后面的圆括号()不疼,但它们是不必要的。最后的disp语句也是不必要的,因为它们将显示在循环中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29732792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档