出乎意料的是,我的 Gnuplot 开始出现pdfcairo
终端问题。生成的 PDF 文件中的字体被卡住,就好像单个字符的宽度设置为零一样。我在 Mac OS 上使用 Gnuplot 5.2.7,通过自制软件安装。
在这里,一个最小的不工作的例子:
reset
set terminal pdfcairo
set output "mnwe.pdf"
set xlabel "Time t"
set ylabel "sin(t)"
plot [0:2*pi] sin(x) with lines notitle
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
我怀疑字体问题是在最近更新到补丁级别 7 之后发生的。我的 Ubuntu 机器上的 Gnuplot 5.2.2 按预期工作,并为相同的 Gnuplot 脚本生成以下输出:
不幸的是,似乎不可能使用自制软件恢复到以前的 Gnuplot 版本。
我确认epscairo
和pngcairo
终端在使用 Gnuplot 5.2.7 的 Mac 上按预期工作,因此问题仅在于pdfcairo
终端。
编辑:事实上,该错误也影响了其他位于开罗的终端。不知道我第一次检查时做错了什么。
我将不胜感激有关如何解决此问题的任何指示。
我正在尝试调试我在以下过程中遇到的问题make package
:
CMake Error at /usr/local/Cellar/cmake/3.4.3/share/cmake/Modules/BundleUtilities.cmake:861 (message):
error: fixup_bundle: not a valid bundle
Run Code Online (Sandbox Code Playgroud)
我看到message(STATUS ....)
里面有一些,但没有打印出来。
例如,在fixup_bundle
该文件 ( /usr/local/Cellar/cmake/3.4.3/share/cmake/Modules/BundleUtilities.cmake
) 中包含的函数的开头有以下几行:
message(STATUS "fixup_bundle")
message(STATUS " app='${app}'")
message(STATUS " libs='${libs}'")
message(STATUS " dirs='${dirs}'")
Run Code Online (Sandbox Code Playgroud)
但是当我运行 cmake 时,即使使用make package VERBOSE=1
.
但如果我删除那些STATUS
被打印的内容,那么我想知道如何“激活”这些STATUS
消息
我有一个名为initialiseApp的操作,该操作显然可以初始化应用程序。我需要服务器提供一些信息,例如用户信息,样式以及有关所显示页面(这是一个单页面应用程序)的详细信息。我正在使用redux-sagas,我想不出一种方法来链接异步操作,以使它们按顺序发生,而不是并行发生。
在请求任何样式信息之前,我需要先调用用户信息,因为在服务器端,对用户的调用转到并检索用户,并在会话中进行了一些设置。由于目前正在并行请求样式,因此显示错误,因为尚未在服务器上设置用户。
因此,我尝试使用put.sync,但这似乎不起作用,但是到目前为止,这是我的代码(顺便说一下,我也在使用TypeScript):
private *invokeAndWaitOn(action: IAction<any>) {
const putSync = (put as any).sync; // The typings file for redux-sagas does not yet include put.sync
yield putSync(action);
}
private *invokeArrayOfActions(actions: IAction<any>[]) {
for (let action of actions) {
yield* this.invokeAndWaitOn(action);
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,我找不到如何正确使用redux-saga的put.sync效果的任何示例。
谁能看到我在做什么错,还是有更好/正确的方法来做到这一点?
提前致谢。
我在管理FFT数据方面遇到了一些问题.我正在寻找很多关于如何进行FFT的例子,但我无法从他们中任何一个得到我想要的东西.我有一个44kHz采样率的随机波形文件,我希望每X ms得到N次谐波的幅度,比方说100ms就足够了.我试过这段代码:
import scipy.io.wavfile as wavfile
import numpy as np
import pylab as pl
rate, data = wavfile.read("sound.wav")
t = np.arange(len(data[:,0]))*1.0/rate
p = 20*np.log10(np.abs(np.fft.rfft(data[:2048, 0])))
f = np.linspace(0, rate/2.0, len(p))
pl.plot(f, p)
pl.xlabel("Frequency(Hz)")
pl.ylabel("Power(dB)")
pl.show()
Run Code Online (Sandbox Code Playgroud)
这是我使用的最后一个例子,我发现它在stackoverflow上的某个地方.问题是,这需要我想要的幅度,获得频率,但根本没有时间.据我所知,FFT分析是3D,这是所有谐波的"合并"结果.我明白了:
根据我对代码的理解,t是时间 - 似乎是这样,但代码中不需要 - 我们可能会需要它.p是功率(或幅度)的数组,但它似乎是每个频率f的所有幅度的平均值,即频率阵列.我不想要平均值/合并值,我想要每X毫秒的N次谐波幅度.
长话短说,我们可以得到:所有频率的1个数量级.
我们想要:所有N个频率的大小,包括存在一定幅度的时间.
结果应该看起来像这个数组:[时间,频率,幅度]所以最后如果我们想要3个谐波,它看起来像:
[0,100,2.85489] #100Hz harmonic has 2.85489 amplitude on 0ms
[0,200,1.15695] #200Hz ...
[0,300,3.12215]
[100,100,1.22248] #100Hz harmonic has 1.22248 amplitude on 100ms
[100,200,1.58758]
[100,300,2.57578]
[200,100,5.16574]
[200,200,3.15267]
[200,300,0.89987]
Run Code Online (Sandbox Code Playgroud)
不需要可视化,结果应该只是上面列出的数组(或散列/字典).
这与如何将vector <char*>转换为vector <string>/string问题相反.
我有一些遗留的例程,vector<char*>
所以我需要转换我的vector<string>
.
这是我提出来的:
std::vector<char*> charVec(strVec.size(),nullptr);
for (int i=0; i<strVec.size();i++) {
charVec[i]= new char(strVec[i].size()+1);
charVec[i][strVec[i].copy(charVec[i], strVec[i].size())] = '\0';
}
Run Code Online (Sandbox Code Playgroud)
它是否正确?
有没有更好的方法来实现它?
ps当然最后我有:
for (int i=0; i<strVec.size();i++) {
delete charVec[i];
}
Run Code Online (Sandbox Code Playgroud) 我的 Python/Qt 4.8 GUI 中有一个 QLabel,其中包含一个表格。我想用不同的颜色设计该表的元素。我意识到我可以使用<font>
标签,但使用类和 CSS 似乎更优雅一些。我希望它看起来像这样:
我的 HTML 看起来像这样:
\n\n<table width=100%>\n <tr class="spec"><td>Wavelength:</td><td>{0:.2f} \xc2\xb5m</td></tr>\n <tr class="spec"><td>Bandwidth:</td><td>{1:.2f} \xc2\xb5m</td></tr>\n <tr class="oldPM"><td>Power:</td><td>{2:.1f} mW</td></tr>\n <tr class="newPM"><td>{3:.0f} sec stability:</td><td>{4:.1%} rms</td></tr>\n <tr class="newPM"><td></td><td>{5:.1%} p2p</tr>\n</table>\n
Run Code Online (Sandbox Code Playgroud)\n\n我的 CSS 是这样的:
\n\n#oldPM {color: #333333}\n#spec {color: blue}\n#newPM {color: #333333}\n
Run Code Online (Sandbox Code Playgroud)\n\n但 Qt 似乎无法识别类选择器。这是 Qt 样式的基本限制,还是我做错了什么?我可以使用它作为选择器来更改整个 QLabel 的样式QLabel
,但我希望它的不同部分具有不同的样式。