MATLAB Answers

# How to assign values to an array with broadcasting

97 views (last 30 days)
Bill Tubbs on 28 Jul 2020
Commented: Walter Roberson on 8 Mar 2021
Is there any way to do broadcasting while assigning values to an array?
I know how to broadcast a computation:
G = zeros(3)
G + [1 2 3]
ans =
1 2 3
1 2 3
1 2 3
But I want to assign the above values to G directly:
G(:,:) = [1 2 3]
Unable to perform assignment because the size of the left side is 3-by-3 and the size of the right side is 1-by-3.
I know how to broadcast a simple scalar value:
G(:) = 1
G =
1 1 1
1 1 1
1 1 1
And I realise I could do this instead:
G(:,:) = repmat([1 2 3], 3, 1)
G =
1 2 3
1 2 3
1 2 3
But I wondered if there is a simpler way to assign a vector of values to all the rows using automatic broadcasting.
Judging by the answers to this question, I am guess not, but I wanted to check.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

madhan ravi on 28 Jul 2020
Edited: madhan ravi on 28 Jul 2020
Your way of using repmat() is the easiest way.
##### 9 CommentsShowHide 8 older comments
Walter Roberson on 8 Mar 2021
repmat was discussed above. Bill was hoping for something more efficient.

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!