簡體   English   中英

如何改變向量V的所有元素來達到sum(V)等於上下邊界的條件?

[英]How to change all elements of a vector V to achieve the condition sum(V) equal with a upper and lower boundaries?

我有一個矢量 V,例如V=[0.1 0.002 0.5 0.2 0.1 0.003 0.4] 矩陣 V 所有元素的邊界應始終介於0.010.8之間

我想創建一個 function 來更改向量V的元素,其中 V 的總和等於 1。

我希望在 Matlab 中創建一個Matlab V= Editor(V, lp, up );

  • 其中 lp: 是下邊界,在我的例子中是 0.01
  • and up: 是上限,在我的例子中是 0.8

嘗試制作一個變量(也許稱之為sumV )來存儲 V 中所有內容的總和,以及另一個存儲1/sumV的變量。 該變量將是您用來更改向量元素的變量。 您可以使用lpup來檢查 V 中的值是否 go 超出或低於您的范圍,並使用遍歷 v 中所有元素的 for 循環。

一些偽代碼:

  1. 對於我 = 1:長度(V)

  2. if 語句檢查 V(i) 是否小於下邊界 'lp'

  3. 將任何小於“lp”的值更新為“lp”

  4. if 語句檢查 V(i) 是否大於上邊界 'up'

  5. 將任何大於“up”的值更新為“up”

  6. for 循環結束

  7. 現在將 V 中的所有元素加到一個變量中,例如 sumV

  8. 將 1 除以 sumV 得到用於修改 V 內容的比例因子

  9. 遍歷 V 中的所有元素並按比例因子對它們進行計時*

希望這能回答你的問題:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM