What does this error " Undefined operator '*' for input arguments of type 'string' " means?
2 次查看(过去 30 天)
显示 更早的评论
I have this code (part of a script)
for i=1:N
Size = Event_List(1,4);
Start_trans_time_ONU(i) = CurrentTime + (Distances(i) / Prop_speed) + Size * 8/ (C *(10^9));
End_Trans_time_ONU(i) = Start_trans_time_ONU(i) + (Distances(i)/Prop_speed) + Grant_time;
aux = End_Trans_time_ONU(i) + Guard_time;
Trans_ONU = i+1;
Event_List = [Event_List; DepartureONU aux 0 0 i+1];
end
And I get the error "Undefined operator '*' for input arguments of type 'string'" on 3rd line.
Can anyone help me on solving it?
Many thanks in advance.
4 个评论
采纳的回答
Jan
2018-2-6
编辑:Jan
2018-2-7
The error message is clear: In the failing line you try to multiply a string, but this is not meaningful.
You know that the problem occurs in this line:
Start_trans_time_ONU(i) = CurrentTime + (Distances(i) / Prop_speed) + ...
Size * 8 / (C *(10^9));
Then use the debugger to find out, where the problem is: Debugger. Eitehr set a breakpoint in this line or type this in the command window:
dbstop if error
Now run the code until Matlab stops at the named line. You can examine the values of the variables, e.g.:
class(Size)
class(C)
One of them is a variable of class string and a multiplication is meaningless. Convert it to a number.
By the way: 10^9 is an expensive power operation, which is evaluated in each iteration, while 1e9 is a cheap constant.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 String 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!