编译后运行MATLAB代码

问题描述 投票:0回答:1
这是在抱怨第4行:n = 2/dt,这是怎么回事?

在这里是代码:

function val=Normal(l1,l2,dt)

const=(l2/l1-1);
N=2/dt;

S=1.0/sqrt(l2/l1);
Z(1)=S;

for i=2:N
    t= -1+(i-1)*dt;
    Z(i)=1.0/sqrt(const*t*t+1);
    S=S+2*Z(i);
end
Z(21)=1.0/(l2/l1);
S=S+1.0/sqrt(l2/l1);

val=dt*S/2;


end

但是,当通过命令

dt
传递到独立的人时,不是标量。  这是一个字符数组,具有3个元素(
./Normal 1 5 0.5
matlab matrix executable
1个回答
3
投票
'0'

'.'
)!
当将数值论点传递给独立的论点时,他们通过弦。  因此,在函数内部,您需要将
'5'
转换为double,类似地转换为
'0.5'
l1

l2 注意,您可以使用

dt = str2num(dt);
l1 = str2num(l1);
l2 = str2num(l2);
在运行时确定函数是独立的:
isdeployed

您可能需要显示结果:
if isdeployed, dt = str2num(dt); end

恢复:


if isdeployed, disp(val); end


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.