Overwriting a part of an array
16 views (last 30 days)
Show older comments
I have arrays of fixed size, and starting at a fixed location, I want to overwrite the values in the array with values of another array of variable length.
For example:
A = [1 3 4 2 6 7 4 6 7]
B1 = [9 8 5]
B2 = [5 5 4 3]
I want to overwrite the values in A, starting at position 2, with the values of B. (B is always shorter than A) This would yield:
C1 = [1 9 8 5 6 7 4 6 7]
C2 = [1 5 5 4 3 7 4 6 7]
One way to achieve this is:
C1 = A;
C1(2:1+size(B1,2)) = B1;
I was wondering if there is a more direct/elegant way, that doesn't require the size(B1,2) parameter?
0 Comments
Accepted Answer
KSSV
on 13 Nov 2016
C1 = A;
C1(2:1+length(B1)) = B1;
You have to mention the indices where you are replacing, so you are bound to use size/ length.
1 Comment
Laura Echeverri Zea
on 8 Oct 2019
hello, i have question, wht is i what to replace just a value and my matrix is zeros's matrix... for example
med=5
X=3
A=zeros(1,med)
and i want to change only X in the position (1,3) and save that value
More Answers (0)
See Also
Categories
Find more on Operators and Elementary Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!