Matlab 为什么';t此函数在使用switch命令时返回解决方案?
我计划使用switch命令使用具有不同ODE方法的多个代码块。根据用户作为“diff”输入的内容,代码将运行特定的代码块。当我在命令窗口中输入Matlab 为什么';t此函数在使用switch命令时返回解决方案?,matlab,Matlab,我计划使用switch命令使用具有不同ODE方法的多个代码块。根据用户作为“diff”输入的内容,代码将运行特定的代码块。当我在命令窗口中输入ODE(@(x,y)x^2,1,2,4,7,1)时,这个函数为什么不返回任何内容?我尝试在第一行重新分配输出变量,但没有效果 function [x1,y1] = ODE(f,x0,y0,xn,h,diff) %h = step size switch diff case '1' h=(y0-x0)/xn;
ODE(@(x,y)x^2,1,2,4,7,1)
时,这个函数为什么不返回任何内容?我尝试在第一行重新分配输出变量,但没有效果
function [x1,y1] = ODE(f,x0,y0,xn,h,diff)
%h = step size
switch diff
case '1'
h=(y0-x0)/xn;
y1=zeros(1,xn+1);
x1=x0:h:y0;
y1(1)=x0;
for j=1:xn
k1=feval(f,x1(j),y1(j));
k2=feval(f,x1(j+1),y1(j)+h*k1);
y1(j+1)=y1(j)+h*(h(1)+(h/2)*(k1+k2));
end
r=[x1',y1'];
return
end
将行从
case'1'
更改为case 1
可能会奏效。或者,您可以使用ODE(@(x,y)x^2,1,2,4,7,'1')
格式的字符输入调用该函数
字符的开关盒:
返回:
diff是一个等于“1”的字符
数字开关盒: 返回: diff是一个等于1的数字
diff = '1'; %Character input%
switch diff
case 1
disp("diff is a number equal to 1");
case '1'
disp("diff is a character equal to '1'")
end
diff = 1; %Numerical input%
switch diff
case 1
disp("diff is a number equal to 1");
case '1'
disp("diff is a character equal to '1'")
end