在这个页面中,Albert Armea分享了一个代码,用章节分割视频ffmpeg.代码很简单,但不太好看.
ffmpeg -i"$ SOURCE.$ EXT"2>&1 | grep章节| sed -E"s/*Chapter#([0-9] +.[0-9] +):start([0-9] +.[0-9] +),end([0-9] + .[0-9] +)/ - i \"$ SOURCE.$ EXT \"-vcodec copy -acodec copy -ss\2 -to\3 \"$ SOURCE-\1. $ EXT \"/"| xargs -n 11 ffmpeg
有一种优雅的方式来完成这项工作吗?
四向对数图是用于振动控制和地震保护的常用图.我非常感兴趣的是如何在Matplotlib中绘制此绘图而不是在Inkscape中添加轴.这里是四向对数图的样本.

快速而肮脏的Python代码可以生成图形的主要部分,但我不能将两个轴添加到图形上.http://matplotlib.org/examples/axes_grid/demo_curvelinear_grid.html提供了添加轴的示例,但我无法使其正常工作.任何人都有类似的经验,将轴添加到Matplotlib图中?
from pylab import *
from mpl_toolkits.axisartist.grid_helper_curvelinear import GridHelperCurveLinear
from mpl_toolkits.axisartist import Subplot
beta=logspace(-1,1,500)
Rd={}
for zeta in [0.01,0.1,0.2,0.7,1]:
Rd[zeta]=beta/sqrt((1-beta*beta)**2+(2*beta*zeta)**2)
loglog(beta,Rd[zeta])
ylim([0.1,10])
xlim([0.1,10])
grid('on',which='minor')
Run Code Online (Sandbox Code Playgroud)

更新:谢谢大家!我使用Inkscape来修改上图.我认为结果很好.但是,我仍在寻找在Matplotlib中绘制此图的方法.

我认为Sympy在计算trig函数的傅里叶变换时犯了一个错误.例如:
from sympy import fourier_transform, sin
from sympy.abc import x, k
print fourier_transform(sin(x), x, k)
Run Code Online (Sandbox Code Playgroud)
Mathematica的预期答案是

但Sympy返回0.有时候该功能运行得很好,fourier_transform(Heaviside(t)*cos(t),t,omega)并fourier_transform(Heaviside(t)*sin(t),t,omega)返回正确的答案.我认为Sympy可能正在使用拉普拉斯变换来计算傅里叶变换.
这些天我正在尝试使用 Sympy 重做单自由度系统的冲击谱。这个问题可以减少寻找函数最大值的问题。以下是两种情况,我不知道该怎么做。
第一个是
tau,t,t_r,omega,p0=symbols('tau,t,t_r,omega,p0',positive=True)
h=expand(sin(omega*(t-tau)))
f=simplify(integrate(p0*tau/t_r*h,(tau,0,t_r))+integrate(p0*h,(tau,t_r,t)))
Run Code Online (Sandbox Code Playgroud)
f最终目标是获得(变量为)的最大绝对值t。直接的方法是
df=diff(f,t)
sln=solve(simplify(df),t)
simplify(f.subs(t,sln[1]))
Run Code Online (Sandbox Code Playgroud)
这是结果,我尝试了很多方法,但无法进一步简化。

因此,我尝试了另一种方式。因为我需要最大绝对值和abs(f)最大值出现的位置与 的平方相同的位置f,所以我们可以先计算 的平方f。
df=expand_trig(diff(expand(f)**2,t))
sln=solve(df,t)
simplify(f.subs(t,sln[2]))
Run Code Online (Sandbox Code Playgroud)
看来答案几乎是一样的,只是换了一种形式。

预期的答案是一个sinc函数加一个常数,如下所示:

因此,问题是如何得到最终的呈现。
第二个可能有点难。这个问题可以简化为找到 的最大值f=sin(pi*t/t_r)-T/2/t_r*sin(2*pi/T*t),其中t_r和T是两个参数。t_r当和的比值变化时,最大值位于不同的峰值处T。我在 Sympy 中没有找到解决它的方法。有什么建议吗?答案可以用下图来表示。

当我使用forecast库进行预测时,我注意到以下代码没有按预期运行:
library(forecast)
library(dplyr)
df1 <- data.frame(gp=gl(20,5), dt=seq(1:100))
get <- function (df1){
ts1 <- ts((df1%>%filter(gp==2))$dt)
as.numeric(forecast(ar(ts1),15)$mean)
}
print(get(df1))
Run Code Online (Sandbox Code Playgroud)
错误返回是:
ts(x) 中的错误:“ts”对象必须有一个或多个观察结果
可能是由ar或ar.burg功能引起的。因为如果您将功能更改为ets或其他功能,则该功能运行良好。
更奇怪的是,如果把代码改成:
library(forecast)
library(dplyr)
df1 <- data.frame(gp=gl(20,5), dt=seq(1:100))
ts1 <- ts((df1%>%filter(gp==2))$dt)
get <- function (ts1){
as.numeric(forecast(ar(ts1),15)$mean)
}
print(get(ts1))
Run Code Online (Sandbox Code Playgroud)
代码也运行正常。我认为这可能是ar功能上的一个错误,问题在某种程度上与范围有关。对此有什么想法吗?
python ×2
sympy ×2
dplyr ×1
ffmpeg ×1
forecasting ×1
integration ×1
matplotlib ×1
max ×1
plot ×1
r ×1