小编fiz*_*fiz的帖子

从三个列表绘制热图X,Y,强度

当我有x,y,强度时,我不知道如何创建热图(或等高线图).我有一个看起来像这样的文件:

0,1,6
0,2,10
....
Run Code Online (Sandbox Code Playgroud)

至今:

with open('eye_.txt', 'r') as f:
        for line in f:
                for word in line.split():
                        l = word.strip().split(',')
                        x.append(l[0])
                        y.append(l[1])
                        z.append(l[2])
Run Code Online (Sandbox Code Playgroud)

尝试使用pcolormesh,但它想要一个形状对象,我不确定如何将这些列表转换为numpy数组.

我试过了:

i,j = np.meshgrid(x,y)
arr = np.array(z)
plt.pcolormesh(i,j,arr)
plt.show()
Run Code Online (Sandbox Code Playgroud)

它告诉我:

IndexError: too many indices
Run Code Online (Sandbox Code Playgroud)

有人可以阻止我对着键盘砸我的头吗?

python matplotlib heatmap

8
推荐指数
2
解决办法
1万
查看次数

我应该如何在typedef中定义一组位数?

问题

我目前正在尝试在C++ 11中模拟一些固件.在固件中,我们有一个32位的固定数据长度,我们将这32位分成更小的数据包,例如,我们有一个9位大小的数据包,另外6位被打包成32位字.

在C++中,我想确保我输入的数据具有这些长度.我不在乎是否溢出,只是只有9位被操作或传递给另一个函数.

理想情况下,我想要一些简单的typedef:

only_18_bits some_value;
Run Code Online (Sandbox Code Playgroud)

我的尝试

struct sel_vals{
int_fast32_t m_val : 18;
int_fast8_t c_val : 5;
}
Run Code Online (Sandbox Code Playgroud)

但这有点烦人,因为每当我想使用它时我都必须这样做:

sel_vals somevals;
somevals.m_val = 5;
Run Code Online (Sandbox Code Playgroud)

对我来说似乎有点冗长,我必须首先声明结构.

也是出于显而易见的原因,我不能只做以下事情:

typedef sel_vals.m_val sel_vals_m_t;
typedef std::vector<sel_vals_m_t>;
Run Code Online (Sandbox Code Playgroud)

我可以使用,std::bitset<9>但每当我想做一些数学我必须将其转换为无符号,它只是有点凌乱.我想避免一塌糊涂.

有任何想法吗?

c++ struct typedef

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

如何在 Qt 中向网格布局添加滚动条?

我有一个QGridLayout将包含一堆小部件。当循环添加了太多小部件并且它们无法全部放入页面时,问题就出现了。我想添加一个滚动条,但显示不正确。

此函数返回一个添加到主布局的选项卡,它包含网格布局:

QTabWidget *RegistersTab::createTab()
{
    QTabWidget *tab = new QTabWidget(this);

    std::vector<QGridLayout*> loVec; //to add to master layout

    for(int i=0; i<2; i++) //number of pages
    {
        QWidget *client = new QWidget(this); //this part breaks it
        QScrollArea *scrollArea = new QScrollArea(this);
        scrollArea->setWidget(client);

        QTabWidget *tabPage = new QTabWidget(client);

        QGridLayout *loGrid = new QGridLayout(client);
        tabPage->setLayout(loGrid);

        QString title = QString("Page %1").arg(i);
        tab->addTab(tabPage, title);

        loVec.push_back(loGrid);
    }
    m_loGridVec.push_back(loVec);

    return tab;
}
Run Code Online (Sandbox Code Playgroud)

GridLayout载体是存在的,所以我可以添加小部件和后操纵它。目前,我的标签顶部有一个灰色框 - 所以有些东西坏了。如果我删除滚动区域并设置(client)(this).

我猜有一个简单的更正要进行?

编辑(如何制作标签):

ui->lo->addWidget(m_tab);

m_tab->addTab(createTab(), title); …
Run Code Online (Sandbox Code Playgroud)

c++ qt scrollbar

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

二维无约束 Nx1 阵列

我正在尝试创建一个灵活的常量数组。我想使用二维数组,有时可能是例如 2x1、2x2、3x2 数组等。例如:

type int_2d_array is array (integer range<>, integer range<>) of integer;
constant M : positive := 2;
constant nMax : positive := 1;
constant n : int_2d_array(M - 1 downto 0, nMax - 1 downto 0) := ( (1) , (2) ); -- wrong

error: type int_2d_array does not match with the integer literal
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它不会抱怨:

type int_2d_array is array (integer range<>, integer range<>) of integer;
constant M : positive := 2;
constant nMax : positive := 2;
constant …
Run Code Online (Sandbox Code Playgroud)

arrays vhdl

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

HLS工具使FPGA上的数学更简单

我有一个问题,使用HLS工具比写下原始VHDL/verilog更容易解决.目前我正在使用Xilinx Virtex-7,因为我认为这已经被其他一些供应商所解决.

我可以使用VHDL 2008.

所以在VHDL中想象你有很多计算,例如:

p1 <= a x b - c;
p2 <= p1 x d - e;
p3 <= p2 x f - g;
p4 <= p2 x p1 - p3;
Run Code Online (Sandbox Code Playgroud)

目前,如果我用IP核编写它,它将是四个DSP IP核,并且由于不同的端口宽度,我必须生成这个IP核4次.每当我对其中一些外部信号进行更改时,所有宽度都会再次改变.跟踪所有这些调整大小是一件痛苦的事情,特别是在调整签名向量的大小时.

我有很多数学因而有很多DSP逻辑.使用HLS工具编写此块会更容易.理想情况下,我希望它能够处理宽度并相应地对数据进行位移.

这样的工具存在吗?你会推荐哪一个?

奖励积分:

这些工具中的任何一个都可以处理浮点数学并让您控制精度吗?

verilog signal-processing fpga vhdl

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

为什么这个说没有已知的转换从"nullptr_t到const"?

最初项目编译并运行良好.然后没有修改setuptab.h|.cpp文件,我试图避免创建一个新的实例,setuptab所以我试着把它传递过来.

错误

No matching constructor for initialization of 'Ps::MainView'
        m_mainView(*new MainView(nullptr), m_setupTab)
                        ^        ~~~~~~~

Candidate constructor (the implicit copy constructor) not viable: no known conversion from 'nullptr_t' to 'const Ps::MainView' for 1st argument
    class MainView : public QMainWindow
          ^
Run Code Online (Sandbox Code Playgroud)

这是一个小项目,我有以下文件:

main.cpp
startup.h|.cpp

View/mainview.h|.cpp
View/setuptab.h|.cpp
Run Code Online (Sandbox Code Playgroud)

main.cpp只是:

#include <QApplication>
#include "startup.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Ps::Startup start_up;
    start_up.show();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

Startup.cpp

#include "startup.h"
#include "View/mainview.h"
#include "View/setuptab.h"

namespace Ps
{ …
Run Code Online (Sandbox Code Playgroud)

c++ qt pointers

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