网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月30日漏签0天
matlab吧 关注:292,509贴子:1,659,351
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1回复贴,共1页
<<返回matlab吧
>0< 加载中...

小白问个问题,关于C++和matlab混用

  • 只看楼主
  • 收藏

  • 回复
  • 他不会为了你变
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
c++文件:sort_sparse_mat.cpp
#include <iostream>
#include <string>
#include <vector>#include <mex.h>#include "utils.h"
#include "mat.h"
#include "mex_utils.h"#define llint long long intusing namespace std;void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
{
// Sorts the columns of a sparse matrix (ascending/descending) and outputs sorted value and index matrices massert(nrhs>=1 && nrhs<=2, "Allowed inputs: <matrix to sort>,<sort order ('ascend' or 'descend'), default='descend'>");
massert(nlhs==1,"Exactly 1 output allowed: <rank-matrix>"); string order = "descend";
if(nrhs>1)
order = mxArrayToString(prhs[1]);
massert(order=="ascend" || order=="descend", "2nd parameter should be either 'ascend' or 'descend'"); mxArray* inarr = (mxArray*)prhs[0];
mwIndex* inIr = mxGetIr(inarr);
mwIndex* inJc = mxGetJc(inarr);
double* inPr = mxGetPr(inarr); mxArray* outarr = mxDuplicateArray(inarr);
mwIndex* outIr = mxGetIr(outarr);
mwIndex* outJc = mxGetJc(outarr);
double* outPr = mxGetPr(outarr); vector<pair<llint,double>> vec;
for(int i=0; i<mxGetN(inarr); i++)
{
vec.clear();
for(llint j=inJc[i]; j<inJc[i+1]; j++)
vec.push_back(make_pair(j,inPr[j])); if(order == "ascend")
sort(vec.begin(),vec.end(),comp_pair_by_second<llint,double>);
else if(order == "descend")
sort(vec.begin(),vec.end(),comp_pair_by_second_desc<llint,double>); for(int j=0; j<vec.size(); j++)
outPr[vec[j].first] = j+1;
} plhs[0] = outarr;
}
运行语句mex -v CXXFLAGS='$CXXFLAGS -std=c++11 -O3' -largeArrayDims sort_sparse_mat.cpp后,
系统生成了一个sort_sparse_mat.mexw64文件。
问题是怎么调用这个sort_sparse_mat啊,这程序是肯定没有问题的
我直接输入sort_sparse_mat(a)总是报错


  • 他不会为了你变
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
自己顶一下


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回matlab吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示