MATLAB中的switch问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 21:47:01
这是一个子程序,其他都没有问题,就是报错switch用错了,报错信息:??? SWITCH expression must be a scalar or string constant.

并且紧接着一个报错信息是:On line 39 ==> position=[node(1,1),node(1,2)];

请高手给看看,追加分数!

function acname=search_ac(X,Y)
%找到附近锚节点
R=100;
acname=[' ';' ';' '];
namestring=evalin('base','namestring');
Nnode=[X,Y+R];
Enode=[X+R,Y];
Snode=[X,Y-R];
Wnode=[X-R,Y];
NEnode=[X+R,Y+R];
SEnode=[X+R,Y-R];
SWnode=[X-R,Y-R];
NWnode=[X-R,Y+R];
for i=1:81
name=namestring(i,:);
node=evalin('base',name);
if acname(3,:)~=' ';
return;
else
for j=1:3
if acname(j,:)==' '
position=[node(1,1),node(1,2)];
switch position
case Nnode
acname(j,:)=name;

??? SWITCH expression must be a scalar or string constant.
表示:switch的表达式必须是数值或字符常量,不能是矩阵。

按你的程序,还是使用if选择结构比较合适。