这几个MATLAB语句构成的M 文件有什么问题,请指教

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:21:26
function xsz=xsz(pi,qi)
global p0 q0
xsz=dot(pi,qi)/dot(p0,q0);

提示pi qi 未定义

你的这个代码是意思 xsz是用来计算(pi,qi)和(p0,q0)内积的比, 从代码可以看出,你把 p0和q0定义为全局全量,其实代码本身并没有什么问题,只是你直接运行了M文件,而系统运行中并没有pi,qi的值,我在窗口的情况下输入并运行了你的M文件,记住先在work文件夹下保存xsz.m文件,你可以看看下面的运行结果
>> pi=2;qi=1;p0=1;q0=2;
>> xsz(pi,qi)
Warning: Divide by zero.
> In xsz at 3
xsz =
Inf
ans =
Inf
第二次运行,我并不输入pi的值
>> qi=1;p0=1;q0=2;
>> xsz(pi,qi)
Warning: Divide by zero.
> In xsz at 3
xsz =
Inf
ans =
Inf
由此可见,系统可以计算,第二次运行则说明 pi是系统可以认识的,即为3.14
这并不是代码的错误问题,而且你运行的方式不对,因为你没有输入变量的值.
希望对你有帮助

pi是系统默认的
不用在函数中体现。
function xsz=xsz(qi)
global p0 q0
xsz=dot(pi,qi)/dot(p0,q0);