给定数据向量时,是否存在一个Matlab函数可以建立精确的概率质量函数(或概率密度函数)?
我的意思是这样的:
X = [1 2 4 1 4 3 2 3 4 1];
[x px] = a_function(X)
x =
1 2 3 4
px =
0.3 0.2 0.2 0.3
Run Code Online (Sandbox Code Playgroud) 用gdb运行我的程序我得到了这个:
fem.o:malloc.c:3096:sYSMALLOc:断言`(old_top ==(((mbinptr)(((char*)&((av) - > bins [((1) - 1)*2])) - __builtin_offsetof(struct malloc_chunk,fd))))&& old_size == 0)|| ((unsigned long)(old_size)> =(unsigned long)(((__ builtin_offsetof(struct malloc_chunk,fd_nextsize))+((2*(sizeof(size_t))) - 1))~~((2*(sizeof) (size_t))) - 1)))&&((old_top) - > size&0x1)&&((unsigned long)old_end&pagemask)== 0)'失败.
程序接收信号SIGABRT,已中止.__kernel_vsyscall()中的0xb7fe1424
我发现此代码后出现此错误:
problem->y0 = (double *)calloc(n_tot, sizeof(double));
Run Code Online (Sandbox Code Playgroud)
问题是具有double*y0作为成员的结构.
以前在函数中,我这样做
problem = (fem_problem *)calloc(1, sizeof(fem_problem));
Run Code Online (Sandbox Code Playgroud)
我没有得到任何错误问题== NULL.
一些建议?
加:
我已经检查了n_tot的内容,它有正确的号码
如果我在我的代码中使用这个宏是安全的吗?
#define my_calloc(x, n) ((x) = (__typeof__ (x))calloc((n), sizeof(__typeof__ (&(x)))))
Run Code Online (Sandbox Code Playgroud)
我用gcc作为编译器......
在我的程序中有很多内存分配点,所以我使用它.我在5分钟前试过它,我得到了一些奇怪的sigabort和sigsev,现在我要回家了......如果我能找到一些东西,我会再试一次.
一些想法/提示?
编辑增加:
一般我使用宏如下:
double *x;
my_calloc(x, 10);
int **y;
my_calloc(y, 30);
Run Code Online (Sandbox Code Playgroud) 我打算开发一个必须访问(r/w)小型数据库的C++应用程序.前段时间我写了一些用于访问格式化文本文件的代码,我将其用作数据库.但是现在我想知道是否存在一些用于c ++(linux box)的轻量级库,它让我轻松处理并且具有小型数据库的良好性能.
我想要一些建议.
这是我的场景:
class Database {
public:
Database();
~Database();
void close();
...
private:
sqlite3 *database; //SQLITE3 OBJECT
bool isOpenDb;
...
};
Database::Database() {
database = 0;
filename = "";
isOpenDb = false;
}
Database::~Database() {
close();
}
void Database::close() {
sqlite3_close(database);
isOpenDb = false;
}
Run Code Online (Sandbox Code Playgroud)
当Database对象被销毁时,我想要关闭sqlite3对象.在这种形式中,似乎它可能是一种不安全的方法,因为如果我复制对象并将其销毁,则复制的对象处于无效状态.
在您看来,最好的方法是什么?我在想单身课,但我不确定.
我有一个class1带有构造函数class1(int i)和复制构造函数的类class1(const class1& other).
实例class1是动态创建的,因为int在编译时不知道参数.
我的问题是我必须在生成器对象和使用者对象之间传递此指针:
void producer::produceAndSend(...) {
class1 *c1 = generate(...);
consumerObj.set(c1);
}
class consumer {
class1 *internalC;
void set(class1 *c);
}
void consumer::set(class1 *c) {
this->internalC = c; //This only copies the pointer, not the content
}
Run Code Online (Sandbox Code Playgroud)
我想存储指向的对象的副本,c1并且必须指向此副本internalC.我怎样才能做到这一点?