小编bib*_*ibi的帖子

Gnuplot PDF 终端在 Mac 上显示字体问题

出乎意料的是,我的 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 版本。

我确认epscairopngcairo终端在使用 Gnuplot 5.2.7 的 Mac 上按预期工作,因此问题仅在于pdfcairo终端。
编辑:事实上,该错误也影响了其他位于开罗的终端。不知道我第一次检查时做错了什么。

我将不胜感激有关如何解决此问题的任何指示。

macos homebrew gnuplot pango

11
推荐指数
2
解决办法
2307
查看次数

cmake:从内部 .cmake 打印消息

我正在尝试调试我在以下过程中遇到的问题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消息

cmake cpack

5
推荐指数
1
解决办法
4201
查看次数

使用redux-sagas链接异步操作

我有一个名为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效果的任何示例。

谁能看到我在做什么错,还是有更好/正确的方法来做到这一点?

提前致谢。

asynchronous yield-keyword redux redux-saga

4
推荐指数
1
解决办法
3379
查看次数

如何从Python中获取FFT的时间/频率

我在管理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,这是所有谐波的"合并"结果.我明白了:

X轴=频率,Y轴=幅度,Z轴=时间(不可见)

根据我对代码的理解,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)

不需要可视化,结果应该只是上面列出的数组(或散列/字典).

python numpy fft matplotlib scipy

3
推荐指数
1
解决办法
7485
查看次数

如何将vector <string>转换为vector <char*>

这与如何将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)

c++ stl char stdvector

3
推荐指数
1
解决办法
2118
查看次数

通过样式表和 HTML 类在 Qt QLabels 中设置样式

我的 Python/Qt 4.8 GUI 中有一个 QLabel,其中包含一个表格。我想用不同的颜色设计该表的元素。我意识到我可以使用<font>标签,但使用类和 CSS 似乎更优雅一些。我希望它看起来像这样:

\n\n

我想要它是什么样子

\n\n

我的 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,但我希望它的不同部分具有不同的样式。

\n

css qt pyqt

1
推荐指数
1
解决办法
2189
查看次数

标签 统计

asynchronous ×1

c++ ×1

char ×1

cmake ×1

cpack ×1

css ×1

fft ×1

gnuplot ×1

homebrew ×1

macos ×1

matplotlib ×1

numpy ×1

pango ×1

pyqt ×1

python ×1

qt ×1

redux ×1

redux-saga ×1

scipy ×1

stdvector ×1

stl ×1

yield-keyword ×1