先说平台:

win7 x64,matlab 2012a x64,亲测运行。

ncut 是个图像切割方法,以后再回顾具体算法吧,网上很多流程的是Jianbo Shi 这位2000年写的,名字应该是:Data Clustering with Normalized Cuts

问题是普遍流行是他2004修改版,然后其官网上最新也是2009版,那时候还没有问题,可是随着matlab 更新,不再支持 windows 下直接调用.dll文件了,而其公布的代码windows 平台是使用dll 的,如果还有 函数的.h头文件那还可以部分修改调用,问题是没有啊。

在没有修复前主要问题是不能调用函数 :sparsifyc    spmtimesd。

去下2009年的代码,作者真是懒,相关代码还是2004年,根本没有更新,只是添加了其他代码,2009版本有一堆封装了的cpp函数查看不了啊,还好有作者有写指引,可是指引不全阿。根据指引切换解压目录 运行 compileDir_simple ,可是第一次运行根本就是全部出错嘛,哪有作者说的可以忽略。

错误:

Error: Could not detect a compiler on local system which can compile the specified input file(s)...

compileDir_simple语句其实就是生成当前平台运行的能够运行的动态链接库,dll 属于动态链接库,但不是所有。语句有了,其实很可能就是缺少配置C++编译器。运行:

mex -setup

根据指引选择。我用的是 Microsoft Visual C++ 2010 in F:\Program Files (x86)\Microsoft Visual Studio 10.0

然后才运行编译命令:

compileDir_simple

这个我运行时候还是会有部分出错,但缺少的成功了!

解释下后序,mexw64,指在windows64 平台使用,mexglx指在linux 平台,mexmac指在mac 平台。

这时候将生产的都放到函数目录下,ncutw,我主要是使用是基于相似度矩阵做ncut,所以基于图的ncut 我没有运行。

放到了目录下运行还是会出错的,因为代码是基于32位 编写,所以,需要对代码进一步修改,将全部的:

int32() -> int64()。

这时候,成功运行了,我跑了20个数据集,没有问题,基于图的ncut我没有跑,用到的时候再看看吧。

随着matlab 的更新,很多就的代码需要更新,例如上面的情况,其实有个简单的解决便是下个旧版本的matlab。

可是,2010 或之前的版本 使用int64,是可以,但不支持运算操作阿。

例如 int64(a) - int64(b) ,会提示 减法出错。

另附作者的连接:

http://www.cis.upenn.edu/~jshi/software/

Ncut matlab 代码bug 修复的更多相关文章

  1. 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 Bug修复

    开篇语 昨晚发了一篇: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 然后上午起来吃完午饭之后,我就准备继续开工的,但是突然的,想要看B站.然后在一股 ...

  2. 【原创】够强!一行代码就修复了我提的Dubbo的Bug。

    这是 why 技术的第 28 篇原创文章 之前在<Dubbo 一致性哈希负载均衡的源码和 Bug,了解一下?>中写到了我发现了一个 Dubbo 一致性哈希负载均衡算法的 Bug. 对于解决 ...

  3. RHSA-2017:2029-中危: openssh 安全和BUG修复更新(存在EXP、代码执行、本地提权)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  4. RHSA-2017:2930-重要: 内核 安全和BUG修复更新(需要重启、存在EXP、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  5. RHSA-2017:2299-中危: NetworkManager 和 libnl3 安全和BUG修复更新(本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  6. RHSA-2017:1842-重要: 内核 安全和BUG修复更新(需要重启、存在EXP、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  7. RHSA-2018:0395-重要: 内核 安全和BUG修复更新(需要重启、本地提权、代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  8. RHSA-2017:1931-中危: bash 安全和BUG修复更新(代码执行)

    [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 修复命令: 使用root账号登陆She ...

  9. 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)

    转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...

随机推荐

  1. kubernetes搭建dashboard报错

    warningconfigmaps is forbidden: User "system:serviceaccount:kube-system:kubernetes-dashboard&qu ...

  2. 转 Laravel 的核心 —— 服务容器

    具体内容请参考 1.laravel 学习笔记 —— 神奇的服务容器 - 灵感 - 来自生活的馈赠https://www.insp.top/article/learn-laravel-container ...

  3. 浅谈MapReduce工作机制

    1.MapTask工作机制 整个map阶段流程大体如上图所示.简单概述:input File通过getSplits被逻辑切分为多个split文件,通通过RecordReader(默认使用lineRec ...

  4. Redis之String类型操作

    接口IRedisDaoStr: package com.net.test.redis.base.dao; import java.util.List; import java.util.Map; /* ...

  5. 服务器常说的U是什么意思?

    U是英文单词:unit 所说的1U和2U,是服务器的厚度,1U大概是相当于机柜的两个小格子,2U是四个格子.1U大概是4.45厘米(1U=1.75英寸,1英寸=2.54CM).以下这个是图片:

  6. docker 学习(2)

    docker容器中安装vim ubuntu 中默认未装vim,docker run ubuntu vim 出现: container_linux.go:247: starting container ...

  7. ajax跨域请求的处理

    跨域的情形有很多种,网上有人给出了一份表格, 表格中标识为”不允许”通信的情况都属于跨域.实际网络服务中需要跨域的情况确实存在,于是开发者们提供了一种解决方案,就是使用jsonp格式进行数据交互,它不 ...

  8. 【Best Time to Buy and Sell Stock III 】cpp

    题目: Say you have an array for which the ith element is the price of a given stock on day i. Design a ...

  9. 嵌入式tcpip

    嵌入式tcpip方案 目前高端一点的嵌入式处理器,如STM32F107,都带有MAC,因此用户在实现网络功能的时候,只需要外界PHY层的芯片, 目前使用比较都的是DM9161A.网上的驱动也比较多,开 ...

  10. Mac: mac git 的安装 及实现自动补全

    1.检查是否装了brew $ brew list 如果没有,拷贝以下命令到终端 回车.可以安装好brewruby -e "$(curl -fsSL https://raw.githubuse ...