a1=[1 2 3];
a2=[1 2 3];
i=2;
//below, I'm trying to check if size(a1,2) ~= size(a2,2)
if size(a1,2) ~= size(eval(['a' num2str(i)]),2),
disp('columns not equal');
else
disp('columns equal');
end
当列 相等时,上面的代码显示“列不相等”。我做错了什么?
答案 0 :(得分:0)
当我在MATLAB R2010b中运行代码时,我得到了正确的结果。以下是您应该检查的一些事项:
发出clear all
命令以清除主工作区,然后再次尝试运行代码。这将排除您使用局部变量隐藏函数eval
,size
或num2str
的任何可能性。
使用WHICH命令检查您是否使用用户定义的函数隐藏eval
,size
或num2str
。例如,这将显示当前存在的所有eval
的重载版本:
which eval -all
如果您仍然遇到问题,请找出您正在使用的MATLAB version,并查看EVAL上是否存在涉及this MathWorks support page功能的错误报告(注意:您需要MathWorks帐户登录才能访问错误报告。