拿到MATLAB程序,一个主程序和一个子程序,不知道怎样运行

是把子程序直接黏贴到主程序后面,然后放到MATLAB上运行吗?
主程序是:%多尺度形态滤波
f = imread('saturn.tif');
figure,imshow(f)
f=imnoise(f,'salt & pepper'); %加噪声
figure,imshow(f)
B=zeros(21,21);
B(11,11)=1;
B(10,11)=1;
B(12,11)=1;
B(11,10)=1;
B(11,12)=1;
%function F=cms_removenoise(f,B)
b= strel('arbitrary',B); %最小结构元素
n=3;
sumE=0;
for i=1:n
if i==1
Foc=imopen(f,b); %开闭(oc)---闭开(co)滤波
Foc=double(imclose(Foc,b));
Fco=imclose(f,b);
Fco=double(imopen(Fco,b));
Eoc(i)= entropy(Foc); %求熵
Eco(i)= entropy(Fco);
sumE=sumE+Eoc(i)+Eco(i);
F=Eoc(i)*Foc+Eco(i)*Fco;
else
B=imdilate(B,b); %结构元素的膨胀
b1= strel('arbitrary',B);
Foc=imopen(f,b1); %开闭(oc)---闭开(co)滤波
Foc=double(imclose(Foc,b1));
Fco=imclose(f,b1);
Fco=double(imopen(Fco,b1));
Eoc(i)= entropy(Foc); %计算滤波后图像的熵
Eco(i)= entropy(Fco);
sumE=sumE+Eoc(i)+Eco(i);
F=F+Eoc(i)*Foc+Eco(i)*Fco; %各种尺度下形态滤波得到的图像的加权合成
end
end
F=uint8(F/sumE); %各种尺度下形态滤波得到的图像的加权合成
figure,imshow(F);
title('滤波后的图像');
子程序是:
function E= entropy(A) %计算熵
E=0;
n=1.0;
num=size(A);
j=num(1)*num(2);
p=zeros(256);
A=double(A);
for i=1:j %求每个灰度值出现的次数
n=A(i)+1;
p(n)= p(n)+1;
end
p=p/j; %求每个灰度值出现的概率
for m=1:256
if p(m)~=0
E=E+p(m)*log2(p(m));%求熵
end
end
E=-E;
请问如何运行?
我按你提示保存了子程序为entropy.m文件 ,主程序直接运行,可是还有错误提示

??? function E= entropy(A) %计算熵
|
Error: Function definitions are not permitted at the prompt or in scripts.

第1个回答  2009-05-20
子程序保存为entropy.m文件
主程序直接运行本回答被提问者采纳

matlab如何运行程序
matlab如何运行程序:1、首先点击“matlab”软件,并且打开。2、进入主界面之后,选择“新建”中的“脚本”或者“函数”。3、按个人需要来编写代码包括“m主程序和函数文件”。4、在运行之前需要点击左上方的“保存”选项。5、然后点击上方的“运行”按钮开始。6、最后如果没有报错的提示出来,就成功运行...

matlab程序如何运行
把这些文件放在一个文件夹中,打开matlab定位到这个文件夹 这个函数是不需要输入变量的,就运行这个m文件,可以打开这个m文件运行,也可在主程序窗口里输入minist

怎么实现matlab子程序的放置以及调用
1、在电脑桌面上打开MATLAB。2、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函数库文件夹中。3、首先,输入“edit conv”这个“conv”是我准备编辑的子函数的主函数名,每个人所需的主函数名...

matlab主程序和子程序怎么放啊? 比如我的主程序是图1,子程序是图2和图...
要把这三个程序保存为三个文件,放在同一个文件夹中。

fortran主程序和子程序怎么运行主程序
1、程序分段:一个程序由一个或若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。子程序是实现模块化的有效方法。2、每一个程序单位都是以“END”语句结束。主程序段中的END语句作用是使程序“停止运行”;子程序段中的END语句是“使流程返回调用程序”。3、一个程序有且仅有一...

汇编中怎么让主程序和子程序一起运行?
比如:主程序是在不断要求用户输入数据,子程序在进行上次输入数据的运算。这时主程序和子程序的同时运行的实质是在一个时间段内比如1秒内。前0.5秒运行主程序,0.5秒快到时,保存主程序的运行数据,然后切换到子程序,运行0.5秒,这样交替运行.由于计算机的运行速度很快,主程序,子程序就像同时运行一样....

matlab主程序和子程序怎么写到一块
主程序 a=1;b=2;c=addfun(a,b)子程序 function c=addfun(a,b)c=a+b;return 以上是不能写在一个m文件里的。但是 function mainfun()clc a=1;b=2;c=addfun(a,b)子程序 function c=addfun(a,b)c=a+b;return 这样子时可以的,可以直接运行。不过当程序运行结束后,你将无法查看主...

matlab不会用。下面是网上找的代码。请问怎么能运行,哪是m文件?哪是主...
这是两个M文件,clear all清除了前面的M文件,然后又编写了一个M文件,希望采纳

fortran主程序调用一个子程序,子程序又调用另一个子程序,如何编译...
比如说这样的程序调用:PROGRAM MAIN CALL SUB1 END SUBROUTINE S CALL SUB2 END SUBROUTINE SUB2()CALL SUB3 END SUBROUTINE SUB3()END 这几个子程序和主程序PROGRAM MAIN可以放在同一个.f文件里面编译,也可以分别放置不同.f文件,编译时效果一样。参考资料:FORTRAN77---谭浩强,田淑清 ...

一个主程序中只能有一个子程序吗
一个主程序不止能有一个子程序,而是可以含有多个子程序,子程序是实现主程序部分或全部功能的程序,通过程序调用功能,主程序可以实现复杂的功能。主程序与子程序的对应关系并非一对一,因此功能越复杂的主程序,其子程序可能越多,数量无限制,而一个子程序只能对应一个主程序。

相似回答