Multiply nth elements of an array by an element of a different array?
4 views (last 30 days)
Show older comments
I have the following code.
I would like it to work such that if the first element of Ox is greater than zero, which in this case it is, the 1st, 5th, 9th, 13th, 17th, 21st, 25th, etc up to the end of Array will be multiplied by the first element of Ox.
So the output would be:
AllOx1 = (0.5 1 1 1 0.5 1 1 1 0.5 1… etc)
Ox = [0.5 0 0 0];
Array = ones(1,256);
AllOx1 = [];
if Ox(1) > 0
AllOx1 = (Array(1:4:end)*Ru(1), 1, []);
end
Any help would be much appreciated!
Thank you
2 Comments
the cyclist
on 19 Apr 2020
I have a couple questions.
Your question does not mention the variable Ru, but your code uses it. Why?
What do you want AllOx1 to be if Ox is not greater than zero?
Accepted Answer
dpb
on 19 Apr 2020
Edited: dpb
on 19 Apr 2020
I'll presume the answer to Cyclist's 2nd Q? is to be unchanged...and the other is just using different variables for the posting...either way, the answer is essentially the one given removing some unnecessary fluff...but adding one critical piece:
A=ones(1,10); Ox=[0.5 0 0]; % preliminaries...
% engine
B=A; % must copy original else will be short unless mod(size(A),4)==0
if Ox(1)>0
B(1:4:end)=B(1:4:end)*Ox(1);
end
>> B % results...
B =
0.5000 1.0000 1.0000 1.0000 0.5000 1.0000 1.0000 1.0000 0.5000 1.0000
>>
2 Comments
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices 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!