首页 > 解决方案 > 分配元素值之前需要初始化吗?

问题描述

'' 无法识别的函数或变量 'dy'。

功能错误''

是因为代码在为 dy(1) 和 dy(2) 赋值之前没有说明任何关于 dy 的内容吗?

我该如何解决?

function dy=functiondy(t,y)

global example

if (example==1)

dy(1)=-pi*cos(pi*y(2));
dy(2)=pi*sin(t*y(1));

elseif (example==101)

tmp=(y(1)^2+y(2)^2)^0.5;
dy(1)=(y(2)-y(1))/tmp;
dy(2)=y(1)*y(2)/tmp;

end
dy=dy';                 % error line
end

标签: functionmatlabvariablesindexing

解决方案


没有。dy(1) = ...你可以先不说dy = ...,然后dy就会自动出现。

看起来问题是example既不是 1 也不是 101,所以你的两个if块都被绕过了。所以它到达这一行:

dy=dy';

在这里, “=”dy右侧有一个,因此您在分配它之前尝试阅读它。

将一个包罗万象的else块添加到您的, 或在块开始之前使用默认值进行if初始化。dyif


推荐阅读