MATLAB结构阵列21点

MATLAB结构阵列21点,matlab,structure,Matlab,Structure,我正在写一个玩21点的程序,其中一个函数计算分数。它接受一个输入,该输入是一个卡片结构数组,其中一个属性是value(对于ace,值为11)。我的函数应该确定这些值的总和是否超过21,如果其中一张卡是ace,则ace的值将更改为1。有人能帮我弄清楚吗 for index=1:length(input) if(input(input).value == 11) input(index).value = 1; end; end; 实际上,您并不是在对原始片段中的卡片

我正在写一个玩21点的程序,其中一个函数计算分数。它接受一个输入,该输入是一个卡片结构数组,其中一个属性是value(对于ace,值为11)。我的函数应该确定这些值的总和是否超过21,如果其中一张卡是ace,则ace的值将更改为1。有人能帮我弄清楚吗

for index=1:length(input)
    if(input(input).value == 11)
        input(index).value = 1;
    end;
end;

实际上,您并不是在对原始片段中的卡片求和。您在
input(input)
中似乎也有输入错误,我认为这应该是
input(index)
。如果您想使用像这样的for循环,您可以这样做:

total = 0;

for index=1:length(input)
    if(input(index).value == 11)
        input(index).value = 1;
    end;

    total = total + input(index);
end;
使用
sum
内置命令可以避免循环。

if
中的
input(input)
标准应为
input(index)
。通过在循环过程中累加每个值,为循环计算相同
中的总和。