How do I multiples of a number in an array

26 views (last 30 days)
How do I create array with following properties: For the first row, each element is 8 times the corresponding element of x. For the second row, each element is 2 times the square of the corresponding element of x followed by a subtraction 1.

Accepted Answer

DGM
DGM on 14 Jul 2021
Depends how far you want to go with it. You could leverage implicit array expansion to do it in a way that might make a more general solution a bit easier.
x = 1:10;
k = [8; 2];
p = [1; 2];
a = [0; 1];
A = k.*x.^p - a
A = 2×10
8 16 24 32 40 48 56 64 72 80 1 7 17 31 49 71 97 127 161 199
  2 Comments
dpb
dpb on 15 Jul 2021
I had thought of polyval but was/is unfortunate it isn't internally vectorized --
x=1:3;
b=[0 8 0;2 0 -1];
>> [polyval(b(1,:),x);polyval(b(2,:),x)]
ans =
8.00 16.00 24.00
1.00 7.00 17.00
>> cell2mat(arrayfun(@(i)polyval(b(i,:),x),1:size(b,1),'uni',0).')
ans =
8.00 16.00 24.00
1.00 7.00 17.00
>>

Sign in to comment.

More Answers (1)

dpb
dpb on 14 Jul 2021
Edited: dpb on 14 Jul 2021
Well, what have you tried? Follow the recipe given --
y=[8x;2*x.^2-1]; % x is vector
If size(x) --> 2,N, then will need to subscript the above appropriately or clarify what the definition really means.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products


Release

R2012a

Community Treasure Hunt

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

Start Hunting!