Very tricky:Manipulation with complex array

2 次查看(过去 30 天)
I need to write a m.file function for this.
For example
array X = [4, 1, 1, 3, 8, 12], I need to make the array which will contain bold ones as well Y = [4, 1, 5, 1, 3, 4, 8, 12, 20].
  3 个评论
Jovan Jovovic
Jovan Jovovic 2022-9-19
I was thinking to make 3 sub arrays,one array will go with even(2:2:end),one will go with odd(1:2:end),and one will be sum of first element of the both arrays.
After that i would combine it first element of each array,than second element of each array.
The problem is that i need it to make in a m.file with kinda a algorithm method.
However i will try to make it with function reshape.
If you have some additional advice i would be thankful

请先登录,再进行评论。

采纳的回答

Fabio Freschi
Fabio Freschi 2022-9-19
编辑:Fabio Freschi 2022-9-19
Following @Paul suggestion
% original vector
X = [4, 1, 1, 3, 8, 12];
% reshape to have 2xN vector
W = reshape(X,2,[]);
% calculate the sum
S = sum(W,1);
% concat the vector and reshape
Y = reshape([W; S],1,[])
Y = 1×9
4 1 5 1 3 4 8 12 20
  3 个评论
Fabio Freschi
Fabio Freschi 2022-9-19
Why using for loops when the vectorized version is effective, cleaner and more efficient?
Jovan Jovovic
Jovan Jovovic 2022-9-19
编辑:Jovan Jovovic 2022-9-19
Because this tasks want from me to learn logic of the Matlab.I know its absolutely better like this.
But maybe i will get problem like this and i will be stucked if i dont know some function.
Write a m.file which is asking to enter array X (integer numbers),which will make a new array Y .Elements of the array Y are sum from even digits of elements array X. If some element of array X is not inteneger,make a comment about error.
For example X = [81, 19, 102, 22, 12, 21] Y = [8, 0, 2, 4, 2, 2]
And I will need to use the loop to see is there a even digit in every number

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by