# How move elements of a matrix from lower to higher values with limit?

2 ビュー (過去 30 日間)
Nisar Ahmed 2021 年 12 月 9 日
コメント済み: Image Analyst 2021 年 12 月 10 日
Hellow everyone,
I need help to solve this problem here. Suppose this cuve is plotted between D (y axis) and S (x axis). The average value of S in the shown interval is 0.5 and are varies in between 0.3 and 0.9. I want to shift average value upto all the values in between 0.9 and 1 (not straight line). How I can do it in such a way that already higher values move less and lower moves more and they become in between 0.9 and 1. 1 is maximum limit.

サインインしてコメントする。

### 採用された回答

Image Analyst 2021 年 12 月 9 日
You need to rescale your S values from 0.3 - 0.9 (or whatever it actually is) to 0.9 to 1.0.
S = rescale(S, 0.9, 1.0);
This will put the old min value at a new min value of 0.9, and the old max value at a new max value of 1.0. In between it's a linear stretch, which I assume you want. If you want it non-linear it will be more complicated and I don't see any reason to do it like that anyway.
##### 7 件のコメント表示非表示 6 件の古いコメント
Image Analyst 2021 年 12 月 10 日
indexesToChange = (VD > 1917) & (VD < 1970);
sw(indexesToChange) = rescale(sw(indexesToChange), 0.95, 1.0);

サインインしてコメントする。

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by