%ENGR 151 Lab 3 Part 3
clc
clear
disp('ENGR 151 Lab 3 Part 3')
disp('Solid Snake')
disp(' ')
r = ones(1,41)
v = ones(1,41)
for i = 0:0.5:20
r(i) = -.05 + round(i) * .05
v(i) = (4/3) * pi * r(i)^3
end
我有点困惑。我想这就是说我的阵列中没有这样的位置不是一个整数,但是这个问题的方向特别指出“将r = 0到20的r的函数绘制为r的函数0.5使用 一个FOR循环。 V =(4/3)* pi * R3。这将需要41个循环。你需要分配 变量r和v的存储器。使用等式r = -0.5 + i * 0.5来找到给定的r 循环我。您需要更新上面的r和v方程式 适当的下标在每个循环中存储r和v。“为什么不从0 - 40而不是这个.5增量进行for循环?
答案 0 :(得分:0)
如果你试图填充向量r,那么你可以使用在for循环之外初始化的计数器并递增每个循环
cnt = 0;
for i = 0:0.5:20
cnt = cnt + 1; %increment at the beginning so any users of cnt get the 1-indexed value
r(cnt) = -.05 + round(i) * .05
v(cnt) = (4/3) * pi * r(cnt)^3
end
答案 1 :(得分:0)
您也可以对代码进行矢量化:
r = -0.05 + round(0:0.5:20) * 0.05;
v = (4/3) * pi * r .^3
这将使您的代码更加优雅,并避免您在那里遇到索引问题。