声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5387|回复: 13

[混合编程] Attempt to reference field of non-structure array

[复制链接]
发表于 2010-11-5 10:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 cystal 于 2010-11-5 10:11 编辑

一个matlab编辑的文件,新手需要将这个文件运行,希望大家能给与帮忙,非常感谢。
问题是:1,我把run_SMP页面里的datafile改为data.txt,discR改为2,直接运行run_SMP这个页 面报错,第22行fileclose时出错。
               2,使用run(run_SMP(data.txt,2))显示的就是上面的错误,non-structure array.我不清楚matlab输入数据的要求。
着急中,非常感谢大家的帮忙!

CodeSMP.rar

34.38 KB, 下载次数: 1

回复
分享到:

使用道具 举报

 楼主| 发表于 2010-11-5 10:35 | 显示全部楼层

请高手将该MATLAB代码转换为VC下可调试运行的

本帖最后由 cystal 于 2010-11-5 10:37 编辑

非常感谢,非常感谢

CodeSMP.rar

34.38 KB, 下载次数: 1

点评

repeat & delete?  发表于 2010-11-6 00:54
发表于 2010-11-5 21:56 | 显示全部楼层
这个难道又是重复发帖?
 楼主| 发表于 2010-11-6 09:27 | 显示全部楼层
回复 1  : cystal 的帖子

什么意思
 楼主| 发表于 2010-11-6 09:30 | 显示全部楼层
本帖最后由 cystal 于 2010-11-6 09:55 编辑

回复 2  : zhouyang664 的帖子

不是重复,是真的要找大家帮我看看代码。这是别人写的,我只需要能让它运行。这个附件是数据,使用的时候将后缀.txt去掉这是为了方便上传加的。现在报错的是Missing MATLAB operator.还是在18行,谢谢高手帮忙啊

disc_geneV20_label.txt

590 Bytes, 下载次数: 2

 楼主| 发表于 2010-11-6 09:35 | 显示全部楼层
回复 2  : zhouyang664 的帖子

function run_SMP('disc_geneV20_data',0.2)
sup = 0.2;
eps = 0;
filter = 0.9;

load ('disc_geneV20_data')
x = find(classnew == 0);
y = find(classnew == 1);

cases = trans_data(x,:);
controls = trans_data(y,:);

file_result=sprintf('result_%s_%d','disc_geneV20_data',sup)
fid = fopen(file_result,'w');
fclose(fid);

func_supmax(sup,eps,0.2,cases,controls,filter,file_result);
func_supmax(2,0,0.2);
func_supmax(sup,eps,0.2,controls,cases,filter,file_result);

这是主函数,我把主函数的输入直接写上了,使用二进制的矩阵,但是又报错是在第18行Missing variable or function.在网上查了相关的,但是好像我的都没有那种问题啊,非常感谢回复
 楼主| 发表于 2010-11-6 09:36 | 显示全部楼层
回复 2  : zhouyang664 的帖子

% - datafile is the data file in which, there should be two variables,
%        trans_data: binary matrix, each row is a sample, and each column is an item, a 1' in (i,j) means sample i has item j
%        classnew: a binary column vector, which tells class label for each of the sample
% - discR: the parameter r defined in the paper (support difference)
发表于 2010-11-6 09:50 | 显示全部楼层
唉.... 见习教研室主任,无权删帖啊!

点评

close or combine?  发表于 2010-11-6 10:22
发表于 2010-11-6 09:56 | 显示全部楼层
本帖最后由 zhouyang664 于 2010-11-6 09:57 编辑

我给你提几点建议啊!

我觉得你这个函数里的data.txt在程序中出现,也就是这个函数根本就没有输入参数!
应该将主函数第一句改为:
function run_SMP()

还有这里:
file_result=sprintf('result_%s_%d',"data.txt",sup)
为啥要用双引号呢?

fid = fopen(file_result,'w');
fclose(fid);
这两句又是干什么的呢?

func_supmax这个函数我就不明白了....

以上几个建议,你参考一下!
 楼主| 发表于 2010-11-6 10:01 | 显示全部楼层
回复 6 # zhouyang664 的帖子
最开始是这样的:
function run_SMP(datafile,discR)
% - datafile is the data file in which, there should be two variables,
% trans_data: binary matrix, each row is a sample, and each column is an item, a 1' in (i,j) means sample i has item j
% classnew: a binary column vector, which tells class label for each of the sample
% - discR: the parameter r defined in the paper (support difference)
sup = discR;
eps = 0;
filter = 0.9;
load (datafile);
x = find(classnew == 0);
y = find(classnew == 1);
cases = trans_data(x,:);
controls = trans_data(y,:);
file_result=sprintf('result_%s_%d',datafile,sup);
fid = fopen(file_result,'w');
fclose(fid);
func_supmax(sup,eps,discR,cases,controls,filter,file_result);
func_supmax(discR,0,discR,);
func_supmax(sup,eps,discR,controls,cases,filter,file_result);
1,本来是有参数的,我方便运行就直接写入了。
2,双引号我后来改了。
3,file_result=sprintf('result_%s_%d','disc_geneV20_data',sup)
fid = fopen(file_result,'w');
fclose(fid);这三句的功能我不是很清楚,只有中间的数据'disc_geneV20_data'文件是我自己后来修改的。
4,func_supmax是自定义函数
发表于 2010-11-6 10:26 | 显示全部楼层
本帖最后由 zhouyang664 于 2010-11-6 10:33 编辑

回复 3 # zhouyang664 的帖子

明白了,多谢提点!
续:主题 id 是?
我没找到,论坛也没有搜索到!
发表于 2010-11-6 10:36 | 显示全部楼层
不知道这是谁写的程序,真是很费劲
  1. trans_data
复制代码
这个数据在什么地方呢?
发表于 2010-11-6 10:38 | 显示全部楼层
既然出错在第18行,就是子函数出错了,你放这么一大堆主函数干什么呢?
文件操作我也不是很行,静待高人!
 楼主| 发表于 2010-11-6 16:19 | 显示全部楼层
本帖最后由 cystal 于 2010-11-6 16:21 编辑

回复 12 # qibbxxt 的帖子

从原作者那我总共得到的有两个数据文件,一个是之前的那个,一个是这个。(.txt都是我后加的,方便上传)

disc_geneV20_label.txt

590 Bytes, 下载次数: 0

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 23:17 , Processed in 0.066001 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表