这里写自定义目录标题
BUG描述
写了一个helloworld级别的petri_net结构定义的静态文件,名为 simple_petri_net.m
根据教程兴高采烈的执行 pns = pnstruct(‘simple_petri_net’);
然后报错:
无法执行赋值,因为此类型的变量不支持使用点进行索引。
出错 png_process_DEF_files_extract_elements (第 51 行)
PN.No_of_modules = module_number;
出错 png_process_DEF_files (第 14 行)
png_process_DEF_files_extract_elements(fileNames);
出错 pnstruct (第 29 行)
[global_set_of_As, global_set_of_Is] = png_process_DEF_files(fileNames);
结论
直接进报错的文件进去调试一通,发现一个global的PN有问题。输出一看,他是个char
,再看他的内容,赫然写着一个'-h'
????
一通调试加思考,发现原因是,
我刚打开Matlab之后,记得装好的gpensim的验证方式是在命令行打一个gpensim
,然后他就会弹版本号。然后我寻思着:这gensim咋用啊?于是习惯性的打了一个 gpensim -h
在命令行,果然报错了,说明不是这么看用法的,遂去看手册,才知道直接创建文件用就行。
结果这个 gpensim -h
暗搓搓把它里面的全局变量PN改成了-h????
不是?虽然我确实不怎么接触过Matlab,但是这命令怎么还能没原子性呢?(不熟Matlab,不知道有没有必要叫Reggie修一下……)
解决方案
1.重启 Matlab
重启就正常了。
2.手动把PN复位
在命令行打:
>>> global PN
>>> PN = []
强行复位。