Excel公式与MATLAB中的x =(b / N)*( - floor(N / 2):floor(N / 2))相同

时间:2014-01-16 10:22:38

标签: algorithm excel matlab

我正在将我的MATLAB代码转换为Excel文档,但难以将以下公式转移。

  x=(b/N)*(-floor(N/2):floor(N/2))

例如,如果b = 2且N = 5 结果将是:

  x = -0.8000   -0.4000         0    0.4000    0.8000

如果b = 2且N = 6,则结果为:

 x = -1.0000   -0.6667   -0.3333         0    0.3333    0.6667    1.0000

注意:如果N是奇数,则x中有N个元素,如果N是偶数,则x中有N + 1个元素。

如何在Excel中编写它?

2 个答案:

答案 0 :(得分:1)

这个答案来自我对另一个answer的评论。

这是一个非常大的数组公式。选择F3:F19,在公式栏中输入公式,然后按 CTRL + SHIFT + ENTER 进行评估。 (假设您的b位于A1单元格中,您的N位于C4单元格中。

=IFERROR(INDEX(($A$1/$C$4)*INT(($C$4-(ROW(INDIRECT($C$4 & ":" & 3* $C$4-1))-$C$4))/2),SMALL(IF(MATCH(($A$1/$C$4)*INT(($C$4-(ROW(INDIRECT($C$4 & ":" & 3* $C$4-1))-$C$4))/2),($A$1/$C$4)*INT(($C$4-(ROW(INDIRECT($C$4 & ":" & 3* $C$4-1))-$C$4))/2),0)=ROW(INDIRECT("1:" & ROWS(($A$1/$C$4)*INT(($C$4-(ROW(INDIRECT($C$4 & ":" & 3* $C$4-1))-$C$4))/2)))),MATCH(($A$1/$C$4)*INT(($C$4-(ROW(INDIRECT($C$4 & ":" & 3* $C$4-1))-$C$4))/2),($A$1/$C$4)*INT(($C$4-(ROW(INDIRECT($C$4 & ":" & 3* $C$4-1))-$C$4))/2),0),""),ROW(IDIRECT("1:" & ROWS(($A$1/$C$4)*INT(($C$4-(ROW(INDIRECT($C$4 & ":" & 3* $C$4-1))-$C$4))/2)))))),"")

这是我的测试workbook

答案 1 :(得分:0)

在Excel VBA中:

Dim j As Integer = 0
Dim b As Double, N As Double, M As Double, k As Double
b = Cells(3, 3)
N = Cells(3, 4)
If Int(N/2) = N/2 Then
    M = N + 1
Else
    M = N
End If
For k = -(b/N)*(floor(N/2) To (b/N)*(floor(N/2) Step 2*(b/N)*(floor(N/2)/M
    j = j + 1
    x(j)=k
Next k