# Replace some values of a vector with values from another vector of the same size

조회 수: 3 (최근 30일)
Simon Aldworth 2021년 1월 6일
댓글: Stephen23 2021년 1월 6일
Hi,
I have a vector of calculated values that must be capped at a certain value. The capped value may vary along the length of the vector. So, I would like to replace the values in the vector that exceed the limit with the limit value that is appropriate for that element of the vector.
I've relied on this community question for help: https://uk.mathworks.com/matlabcentral/answers/214293-replace-some-values-of-a-vector-with-another-vector-which-has-a-different-size but I'm getting an error based on different numbers of elements on each side of an assigment.
A simplified version of what I'd like to achieve is as follows:
A = [0 0 -3 -8 -10 0 0]
B = [-12 -12 -4 -4 -4 -12 -12]
k = (A < B)
C = A
C(k) = B
A is my original vector and B is a vector of limit values that A must be capped by. C should equal A except where the limit is exceed, where it should equal B.
What I'd like back is:
C = [0 0 -3 -4 -4 0 0]
But it is the last line that is throwing the error. In the workspace, all variables are 1x7 so I'm a bit confused about the error.
Thanks,
Simon.

댓글을 달려면 로그인하십시오.

### 채택된 답변

Ive J 2021년 1월 6일
You've missed the fact that k is of logical class:
A = [0 0 -3 -8 -10 0 0]
B = [-12 -12 -4 -4 -4 -12 -12]
k = (A < B)
C = A
C(k) = B(k)
0 0 -3 -4 -4 0 0
##### 댓글 수: 1이전 댓글 -1개 표시이전 댓글 -1개 숨기기
Simon Aldworth 2021년 1월 6일
Thanks. As well as the improvement from Bruno below, I can also delete the need for k by using:
A = [0 0 -3 -8 -10 0 0]
B = [-12 -12 -4 -4 -4 -12 -12]
C = A
C(A < B) = B(A < B)

댓글을 달려면 로그인하십시오.

### 추가 답변 (1개)

Bruno Luong 2021년 1월 6일
Simply
C = max(A,B)
##### 댓글 수: 2없음 표시없음 숨기기
Simon Aldworth 2021년 1월 6일
Thank you. I think I can use this improvement too.
Stephen23 2021년 1월 6일
+1 this is by far the simplest and most efficient solution.

댓글을 달려면 로그인하십시오.

### 카테고리

Help CenterFile Exchange에서 Whos에 대해 자세히 알아보기

R2018b

### Community Treasure Hunt

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

Start Hunting!

Translated by