For-loop退出太早,需要帮助才能解决问题

Dan*_*l N -1 matlab for-loop function

我编写了一个简单的函数,它接受向量vec,遍历它,执行一个操作,其结果存储在相同索引的相同大小的另一个向量vecRes中,并在完成循环时返回vecRes.以下是功能代码:

function [ vecRes ] = squareTerms( vec )
    vecSize = size(vec);
    vecRes = zeros(vecSize);
    for i = 1:vecSize
        vecRes(i) = vec(i)^2;
    end
end
Run Code Online (Sandbox Code Playgroud)

问题是它似乎退出得太早,事实上只有一次迭代,因为输出显示为:

vecRes = 1     0     0     0     0     0     0     0     0     0
Run Code Online (Sandbox Code Playgroud)

输入:

vec = 1     2     3     4     5     6     7     8     9    10
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么会这样做.任何帮助是极大的赞赏.

ben*_*ben 5

大小返回2个值,行和列.可能你是一个1xN向量.因此大小返回[1 N]并且您的循环运行1次.

>>> size ([1 2 3])
> 
> ans =
> 
>      1     3
> 
>>> 1:size ([1 2 3])
> 
> ans =
> 
>      1
Run Code Online (Sandbox Code Playgroud)