python - 使用列表的算术运算
问题描述
我正在尝试将MATLAB
代码写入python
. 原始MATLAB
代码来自以下视频:https ://www.youtube.com/watch?v=T97ddyTMuro 。简单来说,MATLAB
代码如下:
v = 10;
theta = linspace(15, 75, 100);
g = 9.81;
t = 2*v*sin(theta)/g;
r = v*cos(theta).*t;
plot(r,theta)
我试图在 中重新创建此代码python
,随附的是我尝试过但失败的内容:
import numpy as np
import math as m
import matplotlib.pyplot as plt
theta = np.linspace(0,70,100)
v = 10 # velocity (m/s)
g = 9.81 # accel. due to grav.
t = []
r = []
a = []
multi =[]
for i in np.linspace(0,70,100):
t.append(2*v*(m.sin(np.deg2rad(i)))/g)
for j in np.linspace(0,70,100):
r.append(v*(m.cos(np.deg2rad(i))))
a.append(r[j]*t[j])
无法将两个相乘lists
,因为它们不是整数。
解决方案
一种更简单的方法是直接使用numpy
代码:
import numpy as np
import matplotlib.pyplot as plt
theta = np.deg2rad(np.linspace(0,70,100))
v = 10 # velocity (m/s)
g = 9.81 # accel. due to grav.
t1 = 2*v*np.sin(theta)/g
r = v*np.cos(theta)*t1 # will compute elementwise multiplication
plt.plot(r, theta)
plt.show()
推荐阅读
- django - 在 Django 的管理 formfield_for_foreignkey 中设置表单字段的初始值
- javascript - keydown事件在第一次js上不起作用
- c - 迭代和循环有什么区别?
- android - 如何使用 Android 中的 DataWedge 处理斑马中的故障情况和扫描仪超时回调?
- angular - 如何为两个不同的角度构建设置 nginx 代理
- css - 使用 CSS 设计背景 SVG 图标
- android - 如何在android中加载页面时自动打开我的recycleview的第一个元素
- python-3.x - 如何在 Google Pub/Sub (GCP) 中发布和订阅 .pdf 文件
- r - st_join 几何和分组列在一起
- python - Python Shutil整数范围中的正则表达式移动文件