关于MATLAB 一直提示将script作为函数运行 谢谢!

I=a('C:/Users/佳炜/Documents/MATLAB/lena.bmp');
BW1=edge(I,'roberts');
[BW1,thresh1]=edge(I,'roberts');
figure;
%subplot(1,2,1);
imshow(BW1);
BW1=edge(I,'roberts',0.05);
figure;
%subplot(1,2,2);
imshow(BW1);

BW2=edge(I,'sobel');
figure;
%subplot(1,3,1);
imshow(BW2);
[BW2,thresh2]=edge(I,'sobel');
BW2=edge(I,'roberts',0.05,'horizontal');
figure;
%subplot(1,3,2);
imshow(BW2);
BW2=edge(I,'roberts',0.05,'vertical');
%subplot(1,3,3);
imshow(BW2);

BW3=edge(I,'prewitt');
figure;
subplot(1,3,1);imshow(BW3);
[BW3,thresh3]=edge(I,'prewitt');
BW3=edge(I,'roberts',0.05,'horizontal');
subplot(1,3,2);imshow(BW3);
BW3=edge(I,'prewitt',0.05,'vertical');
subplot(1,3,3);imshow(BW3);

尝试将 SCRIPT a 作为函数执行:
C:\Users\佳炜\Documents\MATLAB\a.m
谢谢!

因为代码保存成文件a.m了,或者是另外有保存成a.m的文件。

需要注意,MATLAB 的程序调用一般是根据文件名(类的方法除外),代码第一句:

I=a('C:/Users/佳炜/Documents/MATLAB/lena.bmp');  

这里的a会被视为一个函数的名字,但 a.m 并不是函数文件,所以会导致报错,从后续代码判断,第一句的作用应该是读入图像。

可以改成:  

I=imread('C:/Users/佳炜/Documents/MATLAB/lena.bmp');

扩展资料:

script一般编写相应的函数,对应相应的.m文件名字。

注意 .m文件要在当前matlab的工作区显示框中。

for i=1:10

x = linspace(0,10,101);

plot(x,sin(x+i));

print(gcf, '-deps', strcat('plot', num2str(i), '.ps'));

end

例如:

function  test()

while(1)

x = input('Temperature in F: ');

if(~isempty(x))

disp(['==> Temperature in C = ',num2str((x-32)*5/9)]);

else

break;

end

end

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-22

你是不是把这段代码保存成文件 a.m 了?或者是另外有保存成 a.m  的文件?

 

需要注意,MATLAB 的程序调用一般是根据文件名(类的方法除外),你代码第一句

I=a('C:/Users/佳炜/Documents/MATLAB/lena.bmp');

这里的a会被视为一个函数的名字,但 a.m 并不是函数文件,所以会导致报错。

 

从后续代码判断,第一句的作用应该是读入图像,可以改成

I=imread('C:/Users/佳炜/Documents/MATLAB/lena.bmp');

本回答被提问者和网友采纳
第2个回答  2016-06-02
你的程序中I=a('C:/Users/佳炜/Documents/MATLAB/lena.bmp');

一句中,a(...)是调用函数的方法,而你程序中没定义这个函数,故出错。
相似回答