首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试在数组的特定行上输入数据

尝试在数组的特定行上输入数据
EN

Stack Overflow用户
提问于 2019-07-09 01:49:27
回答 2查看 65关注 0票数 0

我创建了一个500行10列的数组。我正在尝试使用雷达距离方程生成一个信号强度阵列。我想要在两个距离上检测两个目标,并将它们放入阵列中的特定点处。我有2个If语句嵌套在2个for循环中。虽然for循环工作正常,但我找不出If语句的错误所在。所有的值都是正确的(因此这些值的msgbox)

我尝试将信号(i,j) =0移动到If语句中,但我不确定如何设置界限,因为它位于除第50行和第250行之外的每个其他点。

代码语言:javascript
复制
Sub Generate_Power_Amplitude()
'/////////////////////Basic Parameters////////////////////////////
'/////////////////////Step 1//////////////////////////////////////
' Input the parameters of the Radar Range Equation
TotalPower = 10000 '(Watts)
Gain = 3162.27766 '(35 dB of gain)
Wavelength = 0.3 '(meters)
RCS = 15 '(meters^2)
RangeToTarget = 35000 '(meters)
PulseWidth = 1.67 * 10 ^ -6 '(seconds)
Bandwidth = 6 * 10 ^ 5 '(Hertz)
RangeBins = 1 * 10 ^ 3 '(meters)
PRI = 1 * 10 ^ -4 '(seconds)
PRF = 1 * 10 ^ 4 '(Hertz)
PRIDistance = 60000 '(meters)
'//////////////////Targets/////////////////////////////////////////////
'//////////////////Step 2//////////////////////////////////////////////
' Define how many targets and their distance
Target1 = 25000 '(meters)
Target2 = 125000 '(meters)
'/////////////////Operations//////////////////////////////////////////
RadarRangeNumerator = TotalPower * Gain ^ 2 * Wavelength ^ 2 * RCS
RadarRangeDenomenator = (4 * 3.1415926) ^ 3 * RangeToTarget ^ 4
RelativePower = RadarRangeNumerator / RadarRangeDenomenator
PowerAmplitude = RelativePower ^ 0.5
RelativePower1 = RadarRangeNumerator / ((4 * 3.1415926) ^ 3 * Target1 ^ 4)
RelativePower2 = RadarRangeNumerator / ((4 * 3.1415926) ^ 3 * Target2 ^ 4)
PowerAmp1 = RelativePower1 ^ 0.5
PowerAmp2 = RelativePower2 ^ 0.5

Dim Signal(500, 10)
For i = 1 To 500
    For j = 1 To 10
        If i = 50 Then
            Signal(50, j) = PowerAmp1
        ElseIf i = 250 Then
            Signal(250, j) = PowerAmp2
        End If
        Signal(i, j) = 0
    Next j
Next i
MsgBox Signal(50, 1)
MsgBox Signal(250, 1)
End Sub

我得到了msgboxes来给出正确的值,这是新的For循环,下面有一个评论,正如我所说的,我觉得这最终会被打破,如果有正确的方法,请让我知道。

代码语言:javascript
复制
Dim Signal(500, 10)
For i = 1 To 500
    For j = 1 To 10
        If i = 500 Then
            Signal(50, j) = PowerAmp1
            Signal(250, j) = PowerAmp2
        End If
        Signal(i, j) = 0
    Next j
Next i
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56940173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档