[英]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.01
和0.8
之間
我想創建一個 function 來更改向量V
的元素,其中 V 的總和等於 1。
我希望在 Matlab 中創建一個Matlab
V= Editor(V, lp, up );
嘗試制作一個變量(也許稱之為sumV )來存儲 V 中所有內容的總和,以及另一個存儲1/sumV的變量。 該變量將是您用來更改向量元素的變量。 您可以使用lp和up來檢查 V 中的值是否 go 超出或低於您的范圍,並使用遍歷 v 中所有元素的 for 循環。
一些偽代碼:
對於我 = 1:長度(V)
if 語句檢查 V(i) 是否小於下邊界 'lp'
將任何小於“lp”的值更新為“lp”
if 語句檢查 V(i) 是否大於上邊界 'up'
將任何大於“up”的值更新為“up”
for 循環結束
現在將 V 中的所有元素加到一個變量中,例如 sumV
將 1 除以 sumV 得到用於修改 V 內容的比例因子
遍歷 V 中的所有元素並按比例因子對它們進行計時*
希望這能回答你的問題:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.