Change the range of an array
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
i have a 50x50 matrix with a maximum value of 1000 and a minimum of 200. I am looking for a way to increase the minimum to 350 and scale up the values accordingly but keep the maximum 1000.
Any help is appreciated
0 Kommentare
Antworten (3)
Rik
am 22 Dez. 2021
Essentially your question is this:
Given an array A with values ranging between 200 and 1000
How to find p0 and p1 such that B has values between 350 and 1000 after performing
B=p0+p1*A;
I would suggest using polyfit or determining the values yourself. If you pick the two extreme values, that shouldn't be difficult.
0 Kommentare
Walter Roberson
am 22 Dez. 2021
formula = @(M) (M - 200)/(1000-200) .* (1000-350) + 350
syms M
formula(M)
subs(formula(M), M, 200:100:1000)
So you could use the function handle for numeric work, or you could use the more direct but less obvious linear transformation shown as the symbolic formula
0 Kommentare
Image Analyst
am 22 Dez. 2021
Simply use rescale():
scaledMatrix = rescale(originalMatrix, 350, max(originalMatrix(:)));
0 Kommentare
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!