首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab代码检查器

Matlab代码检查器
EN

Stack Overflow用户
提问于 2015-07-01 05:36:50
回答 1查看 1.2K关注 0票数 1

我正在为学生做一个节目。他们可以在matlab程序中加载matlab代码,程序应该执行学生的代码并检查输出是否正确,如果不正确,程序必须指出错误的行代码。所以我认为这是一种元编程。现在,我正在尝试使用eval()函数,以便以代码的形式执行输入文本,但我不知道这是否是一个好主意。另外,我在维护工作区中的变量方面也有问题,因为当我从一种方法更改为另一种方法时,工作空间变量会被重置,所以我在考虑如何解决这个问题--保存并将工作区加载到一个文件中,但是您可以提出其他更好的想法。

现在,我们有预定义的练习,学生必须解决,程序的输出总是一个或几个图像,因为这是为图像处理类。这里有一个代码示例:

代码语言:javascript
复制
X=double(LENNA_G);
Y=medfilt2(X,[7 7]);
ps=psnr(Y,X,255);
disp(sprintf('%f[dB]',ps));

subplot(1,3,1);
imagesc(X,[0 255]);
colormap(gray(256))
axis image

subplot(1,3,2);
imagesc(Y,[0 255]);
axis image

subplot(1,3,3);
imagesc(X-Y,[-10 10]);
axis image

在执行代码之后,将结果映像与正确的图像(预定义的图像)进行比较,并且必须相同。如果它们不是,那么程序必须至少指出错误可能出现的代码行。我不知道我是否使自己明白了。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-01 07:59:42

根据这些意见,我会提出这个解决方案。给你的学生分发一个模板:

代码语言:javascript
复制
function solution=exercise1(image1,image2)
%A) extract the r, g and b channel from the imag1e
solution.a.r=nan;
solution.a.g=nan;
solution.a.b=nan;
%B) convert the image2 to greyscale
solution.b=nan;
end

然后,您可以调用函数exercise1并逐字段比较字段,您所需要的只是结构的递归比较,该结构输出具有差异的字段名。您也可以提供脚本模板而不是函数模板,但是您的学生必须为他们的函数创建单独的文件。通过这种方式,可以在同一个文件中创建函数,从而保持它们的私有性,并避免名称空间冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31153269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档