arrays - 有没有一种方法可以重新计算 syms 变量并将其插入 Matlab 中的数组中?
问题描述
我必须计算管道系统的摩擦水头损失 hf,并且正在尝试编写一个简单的脚本。我正在使用 Colebrook-White & Darcy-Weisbach 方程在 for 循环中求解 hf 并希望将结果输入到数组中。
这是我到目前为止所做的:
%% Constants due to Rising main system
Hs = 17; % m
D = 0.225; % m
L = 1550; % m
ks = 0.05/1000; % m
nu = 1.13e-6; % m^2/s
Q = 0.08; % m^3/s
%% Calculating hf for the system curve (DW)
Q_sys = [0:10:120];
hf_sys = zeros(1, length(Q_sys));
for i = 1:length(hf_sys)
syms hf
DW = Q_sys(i)==2*sqrt(2*9.81*D*hf/L)*log(ks/3.7/D+2.51*nu/D/sqrt(2*9.81*D*hf/L))*(pi*D^2/4);
hf_sys(i) = vpasolve(DW, hf);
end
hf_sys % to display hf_sys
我的问题是执行后显示如下信息:
Unable to perform assignment because the left and right sides have a different number of elements.
Error in calcs (line 63)
hf_sys(i) = vpasolve(DW, hf);
这是由于vpasolve(DW, hf)
第二次迭代后的返回值为Empty sym: 0-by-1
. 这就是我要解决的问题。
预期值为:
hf_sys = [5.5e-8, 0.481, 1.697, 3.585, 6.126, 9.308, 13.127, 17.579, 22.662, 28.374, 34.714, 41.681, 49.274];
解决方案
推荐阅读
- python - 尝试将对象属性映射到不同名称的数据库列
- android - 是否可以进行多个并行调用并接受使用 Kotlin Flow 返回的第一个?
- c# - 如何在单元测试中验证 Flurl Http 中的请求正文内容?
- c# - Blazor:双向绑定错误 - 仅第一次工作
- bash - linux bash在文件中的可变行号处插入文本
- c++ - C++ 中的 WindowsIdentity.GetCurrent().IsSystem
- c - 更新图像时 GTK 内存泄漏
- mfc - MFC:从 CView 访问 m_wndToolBar?
- android - Android Studio FreeMarker 模板(按插件)
- c# - EWS 管理 API - 创建约会时未将对象引用设置为对象的实例