
语句load('figure(I)','mycmap')出错了,对应的用法如下:
load('mydatamat', 'v1')的意思是将文件mydatamat中的变量v1的值载入内存。而你在使用load语句前当前目录下必须存有名为mydatamat的文件。
去掉这2个语句
load('figure(I)','mycmap')
set(figure(2),'Colormap',mycmap)
后程序可执行。只是没有用上你的颜色表mycmap。
你在计算过程中遇到什么样的问题了呢?!
我试了一下,主要由以下问题:
1)lzmatlab语法有点小问题,如果使用if-else-end结构则缺少一个end标识;如果使用if-elseif-else-end,则需要将else if中间空格去掉,写成elseif,现在一般高版本的matlab都会提示错误;
2)y1=1515;;多写了一个分号;
其实这段程序完全不需要这么写,这里不评论编程水平问题。这段程序经过上面两点修改后运行没有问题,为了减少运算量,我使用x=0:1/100:1037;同时没有使用plotyy,而使用plot(x,y1,'r',x,y2,'b-'),本质上对结果没有影响。结果如下:
for 是个循环语句,for j=-a:a 的意思是j从-a到a,每循环一次增加1。如果要使步长不为1,则
for j=-a:01:a, 此时对应的步长为01。
因为每次for循环i和j都对应一个值,GaborImg(j+HarfH+1, i+HarfW+1)的意思是GaborImg这个矩阵变量的第(j+HarfH+1, i+HarfW+1)个值,最后GaborImg应该有(2HarfH+1,2HarfW+1)个矩阵元素。如果GaborImg没有初始化,每次for循环GaborImg就会添加一个元素;如果GaborImg初始化了,那么每次for循环会修改GaborImg矩阵的第(j+HarfH+1, i+HarfW+1)个值。
主要问题:
1、代码本来应该分两部分,都被混到一起了。而且你可能是直接在命令窗口中直接贴代码运行,这对于函数而言是不允许的,应该保存成M文件再运行。
2、几个低级错误:
(1)变量名错误:y=length(y);应为n=length(y);
(2)调用函数时参数数量错误:>
(3)点乘缺少乘号:w=q/(pimiusysz)exp(-(y^2/(2sy^2)+z^2/(2sz^2)));应为w=q/(pimiusysz)exp(-(y^2/(2sy^2)+z^2/(2sz^2)));
改后的代码:
function zd1668380218552966787q=400000;
t=120;
x=linspace(0,50,100);
y=linspace(-50,50,100);
m=length(x);
n=length(y);
)));
以上就是关于这个matlab程序有什么问题全部的内容,包括:这个matlab程序有什么问题、请教高手matlab程序有什么问题、matlab问题,初学,有这么一个程序如下。谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)