【问题标题】:Normalize vector in MATLAB with first value 100在 MATLAB 中用第一个值 100 标准化向量
【发布时间】:2016-04-17 06:07:57
【问题描述】:

我有一个向量:

0.02
-0.02
0
-0.02
-0.08
-0.05
-0.04
-0.1
0
0.05
0.05
0.05
0.08
0.04

如何使用从 100 开始的第一个值对其进行标准化?

【问题讨论】:

  • 第一个值从 100 开始是什么意思?你的意思是你希望你的结果看起来像 100、-100、0、-100、-400?
  • 你尝试了什么,结果如何?

标签: matlab normalization


【解决方案1】:
myArr = [0.02 -0.02 0 -0.02 -0.08 -0.05 -0.04 ... 
  -0.1 0 0.05 0.05 0.05 0.08 0.04]

myArr = 100*myArr/myArr(1)

【讨论】:

  • 这与之前发布的answer by @DavidKelley 有何不同?
  • @Adriaan 从时间戳来看,他们很可能同时开始回答。
  • @GameOfThrows 两者之间有整整一分钟,我什至不需要 15 秒来写这篇文章。此外,他会看到警告“已发布另一个答案”,单击答案并意识到它是相同的。
  • @Adriaan 你的打字速度比我快。我开始了一个答案,在 Matlab 中写了这个(我总是在发布之前断言我的答案,甚至是简单的答案),然后发布了这个答案,当时,注意到另一个答案就在我之前发布了。另外,为了挑剔,另一个答案在将向量除以标量时使用了冗余的. 除法。无论如何,这会发生,请参阅e.g. this meta post。最后,人们倾向于对发布的第一个答案投赞成票。
【解决方案2】:

简单地除以第一个元素并乘以 100:

a = [0.02 -0.02 0 -0.02 -0.08 -0.05 -0.04 -0.1 0 0.05 0.05 0.05 0.08 0.04]
b = a ./ a(1) * 100
b =
    100  -100     0  -100  -400  -250  -200  -500     0   250   250   250   400   200

【讨论】:

    猜你喜欢
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多