how to populate the left side with the same values as the right side in an array

2 次查看(过去 30 天)
Hello All,
I want to write a small code that, given an array with an n number of odd cells, populates the left side with the same values as the right side (already populated), and the center cell remains unchanged. I developed the following code:
for k=drange(1:n/2+0.5)
w(k)=input('please input half of the values')
end
p = randi(10,10,1); % Create Data
w = randi(10,10,1); % Create Data
[x L E I] = deal(3, 5, 7, 13); % Create Data
P(j)=-w(j)/(x*(15*x-37*L^2)*(76*H*Y))
q==0
for j=drange(n/2+1.5:n)
q=q+1
P(j)=P(n/2-0.5-q)
end
However, I keep obtaining different errors when I run this script. The most common is:
Index exceeds matrix dimensions.
Error in matlab_codigo (line 11) P(j)==P(n/2-0.5-q)
But other errors also occur. It depends of the inputs I give to the program.
Any help appreciated. Thanks
regards, Hugo

采纳的回答

Image Analyst
Image Analyst 2014-12-5
编辑:Image Analyst 2014-12-5
Instead of doing things like n/2+0.5, use ceil(n/2). ceil() goes to the next higher integer. There is also a floor() function to go down (chop off the fraction), and a fix() which goes either way but always towards 0.

更多回答(1 个)

Roger Stafford
Roger Stafford 2014-12-5
t = 1:floor(n/2);
P(:,t) = P(:,n+1-t);
  3 个评论
Roger Stafford
Roger Stafford 2014-12-5
Try this, Hugo:
P = rand(7,5); % <-- Choose any sizes you please
n = size(P,2);
disp(P)
t = 1:floor(n/2);
P(:,t) = P(:,n+1-t);
disp(P)

请先登录,再进行评论。

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by