![]() |
MATLAB:如果循环内的Statement不执行,也不会打印到屏幕上
因此,我们正在尝试执行以下代码。两个if语句正在执行,但是内部if语句无法执行(我们通过不抑制输出来验证了这一点)。有什么原因吗?还是我们无法达到这种状态?
[B]技术指标[/B] 输入如下:v是int值的向量,c是整数。 c必须小于或等于v内的值之一 我们正在尝试使用此算法解决的问题如下: [INDENT]在给定收银机的情况下,如何进行更改以使尽可能少的硬币退还给客户? 例如:输入:v = [1、10、25、50],c =40。输出O = [5、1、1、0] [/INDENT]我们只是在寻找一种更好的解决方案,而更多是因为那部分代码没有执行。 function O = changeGreedy(v,c) O = zeros(size(v,1), size(v,2)); for v_item = 1:size(v,2) %locate largest term l_v_item = 1 for temp = 2:size(v,2) if v(l_v_item) < v(temp) l_v_item = temp end end %"Items inside if statement are not executing" if (c > v(l_v_item)) v(l_v_item) = -1 %"Not executing" else O(l_v_item) = idivide(c, v(l_v_item)) %"Not executing" c = mod(c, v(l_v_item)) %"Not executing" end end [B]回答:[/B] 如果c或v不是整数,即class(c)计算为double ,则出现以下错误消息 ??? Error using ==> idivide>idivide_check at 66 At least one argument must belong to an integer class. Error in ==> idivide at 42 idivide_check(a,b); 并且程序停止执行。因此,第二条语句的内部永远不会执行。相反,如果c是一个整数,例如uint8类,则一切执行正常。 另外:您实际上想用此代码实现什么? [url=https://stackoverflow.com/questions/5163572]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 05:01。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.