这个matlab程序有什么问题

这个matlab程序有什么问题,第1张

语句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 zd1668380218552966787

q=400000;

t=120;

x=linspace(0,50,100);

y=linspace(-50,50,100);

m=length(x);

n=length(y);

)));

以上就是关于这个matlab程序有什么问题全部的内容,包括:这个matlab程序有什么问题、请教高手matlab程序有什么问题、matlab问题,初学,有这么一个程序如下。谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10104650.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存