How to use array data for successive operations
조회 수: 1 (최근 30일)
이전 댓글 표시
Hello everyone,
I hope someone could help me.
I used the 'normalize' function for a set of data and then I used fitsurface to interpolate them with e surface in space. This is the code:
A = [4.6; 9.3; 13.9; 18.6; 23.5; 28.5];
X = normalize(A,'range');
B = [10; 20; 30; 40; 50; 60];
Y = normalize(B,'range');
C = [3.06; 2.56; 2.51; 2.54; 1.6; 1.9];
Z = normalize(C,'range');
plot3(X,Y,Z,'or');
fs=fit([X,Y],Z, 'poly22')
plot(fs, [X,Y],Z)
I would like to normalize each element of the three arrays through this following function:
xinorm = (xi - xmin)/ (xmax - xmin)
HOw can I call each individual element in the expression to obtain a new array with normalized elements?
For example:
one single normalized element of array A should be x2norm = (9.3 - 4.6)/(28.5 - 4.6). I would like to do this for all elements and obtain the vector with all normalized values, in the end to plot them and use fitsurface again.
Thank you very much for your help.
Regards,
Laura
댓글 수: 0
채택된 답변
Pavan Guntha
2021년 7월 27일
Hi Laura,
You could leverage vectorization techniques to solve the problem. Have a look at the following code:
A = [4.6; 9.3; 13.9; 18.6; 23.5; 28.5];
xiNorm = norm_func(A);
B = [10; 20; 30; 40; 50; 60];
yiNorm = norm_func(B);
C = [3.06; 2.56; 2.51; 2.54; 1.6; 1.9];
ziNorm = norm_func(C);
plot3(xiNorm,yiNorm,ziNorm,'or');
fs=fit([xiNorm,yiNorm],ziNorm, 'poly22')
plot(fs, [xiNorm,yiNorm],ziNorm)
function arrOut = norm_func(A)
minA = min(A);
maxA = max(A);
arrOut = (A - minA)./(maxA - minA);
end
Hope this helps!
댓글 수: 0
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!