小编use*_*647的帖子

Matlab可执行文件太慢了

deploytool使用.mMatlab 将我的程序转换为基于控制台的应用程序.Matlab .exe文件执行大约需要2秒钟,但在我将其转换为可执行文件并调用后.exe,执行时间过长需要45秒.

我想将Matlab程序与PHP集成.有没有其他有效和快速的方法来做到这一点?在我的项目中,时间确实是一个重要因素(不是开发时间,而是应用程序的执行时间).那么有什么方法可以花更少的时间吗?

我在互联网上看到,我们可以编写PHP扩展来调用Matlab.此方法是快速还是与调用deploytool文件相同?Matlab编码器是否对此过程有任何帮助?如果有其他选择,请提及.

php c matlab exe matlab-deployment

23
推荐指数
2
解决办法
6090
查看次数

glibc检测到smallbin链表损坏

我试图在一个大循环中重复运行一个函数,但我在2或3次迭代后得到一个错误,但是如果我从这个点开始它给出了一个错误它工作正常但在3 4次迭代后再次停止.这可能是一个记忆问题.由于功能非常大,我不确定内存泄漏究竟在哪里.无论如何我可以在每次迭代后释放变量或者可以解决这个问题的东西.或者因为它是链接列表内存问题免费所有链接列表或什​​么?可以解决什么?如果我运行一次函数,问题就不会发生,所以我认为这是因为我在循环中重复调用该函数.有什么方法可以解决这个问题吗?

错误是

**glibc detected:.....malloc():smallbin double linked list corrupted: 0x000000000 1d404c0 ***
Run Code Online (Sandbox Code Playgroud)

c++ memory-leaks memory-management

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

如何获得非零值的Matrix值

我正在使用opencv将一些matlab代码翻译成c ++.我想获得满足条件的Matrix的值.我为此创建了一个蒙版,当我将它应用到原始矩阵时,我得到的原始矩阵大小相同,但是掩码中没有0值.但我的问题是如何才能获得矩阵中非零值并将其分配给不同的矩阵.

我的matlab代码是:

 for i= 1:size(no,1)
        mask= labels==i;
        op = orig(mask, :); //op only contains the values from the orig matrix which are in the mask. So orig size and op size is not the same
.....
end
Run Code Online (Sandbox Code Playgroud)

我现在的c ++翻译是:

for (int i=0; i<n.rows; i++)
{
    Mat mask;
    compare(labels,i,mask,CMP_EQ);
    Mat op;
    orig.copyTo(op,mask); //Here the orig size and the op size is always same but values which are not in the mask are 0
}
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能创建一个只有掩码满足的值的矩阵?

c++ opencv

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

命令行不会等到exe执行完成

我将我的matlab程序转换为独立的exe程序.当我从命令行调用exe时,它不会等到执行exe.该程序运行大约需要20-30秒.该程序基本上创建了一个txt文件.如何让它等到exe执行.我的matlab主要功能是

function []=features(img_path,category,output_path)
if (strcmp('shoe',category)== 1)
    if exist(img_path,'file')
     test_shoes(img_path,output_path);            
    else
        disp ('Input image path does not exist');
    end     
else
    disp('Sorry wrong input for category.Please give shoe/dress/handbag');

end
return;
Run Code Online (Sandbox Code Playgroud)

问题显示在下面的屏幕截图中:

"所有警告都有'关闭'状态." 实际上是由MATLAB的exe在5秒后显示,但终端不会等到exe完成执行,即"E:\ test>"在调用exe后立即显示在下一行.

如何使命令行等到exe os完成执行,以便新命令行在完成之前不会出现?

matlab cmd exe matlab-compiler

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

如何快速启动MCR启动时间

我将我的matlab程序转换为.net程序集,即dll文件.我已经制作了一个控制台C#应用程序添加dll文件并从php调用它.每次调用.exe时都会调用MCR.如何在服务器启动时初始化MCR而不是每次都关闭,即使在一段时间后调用了exe ??如果有任何其他方法可以使这个过程快速,请建议.

.net dll matlab matlab-deployment

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

将训练数据更改为libsvm格式,以将其传递给libsvm中的grid.py.

我是python的新手,我正在尝试使用libsvm.我试图在grid.py的帮助下进行交叉验证.我从数据库中获取数据,因此它不是稀疏形式的.有没有办法按照grid.py中数据格式的要求以稀疏形式转换它.在文件中声明数据集应采用以下格式:

<label> <index1>:<value1> <index2>:<value2> ...
Run Code Online (Sandbox Code Playgroud)

我尝试使用svm_train并在svm_parameter的帮助下生成模型.

y,x=[location_list,data_list]
prob=svm_problem(y,x)
param=svm_parameter('-t 2') 
model=svm_train(prob,param)
Run Code Online (Sandbox Code Playgroud)

这里我的训练数据是格式

   location_list=[8143L,8163L....]
    data_list=[[ -62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
 -59L....],[-62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
 -59L....],......]
Run Code Online (Sandbox Code Playgroud)

我尝试将prob作为grid.py中的数据集传递,但是它表示未找到数据集,因此可能应将其写入文件中.或者有什么方法可以将prob变量作为数据集传递给grid.py.

我可以按上面或下面显示的格式获取我的训练数据:

    [8143L, -62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
 -59L,...]
    [8163L, -62L, -72L, -62L, -55L, -75L, -66L, -66L, -56L, -57L, -76L, -75L, -79L, -68L, -74L,
 -59L...]
    ...................
Run Code Online (Sandbox Code Playgroud)

第一个8143和8163是标签(类),其余是功能.所以我的问题是:

1)如何将此数据集转换为稀疏形式并将其保存在文件中以将其传递给grid.py? …

python libsvm cross-validation

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

找到点矢量的最小值和最大值

我想从点向量中找到最小值和最大值.向量由x和y元素类型组成.我想要x的最小值和最大值以及y的最小值.我的矢量定义为:

 std::vector<cv::Point> location;
findNOZeroInMat(angles,location);

//I tried to use but it gives an error
  minMaxLoc(location.cols(0), &minVal_x, &maxVal_x);
    minMaxLoc(location.cols(1), &minVal_y, &maxVal_y);
Run Code Online (Sandbox Code Playgroud)

我也尝试过location.x但它没有用.如何单独获得x和y的最小值和最大值?

c++ opencv

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