Use if / else inside a for-loop and change values of array depending on condition
11 次查看(过去 30 天)
显示 更早的评论
Hi all,
I am stuck with the following step and I can't find the solution. The code I need is to change the columns of an array depending on the column index. For odd numbers, without change, for even numbers change the sign.
The size of the array should be variable by dimensions 1 and 2.
Here is what I tryied. Can someone help me please.
Thanks
Size_1 = 5;
Size_2 = 6;
array = ones(Size_1,Size_2);
for i=1:Size_2
if rem(i,2)==0
new_array_2 = array(:,i);
else
new_array_2 = -1*array(:,i);
end
end
new_array should be this
new_array =
1 -1 1 -1 1 -1
1 -1 1 -1 1 -1
1 -1 1 -1 1 -1
1 -1 1 -1 1 -1
1 -1 1 -1 1 -1
0 个评论
采纳的回答
madhan ravi
2019-2-9
No loops needed:
size1=5;
size2=6;
A=ones(size1,size2);
A(:,2:2:end)=-A(:,2:2:end)
2 个评论
madhan ravi
2019-2-9
See the answer below.
Reasons:
- You forgot to preallocate new_array_2.
- You forgot to index new_array_2.
更多回答(1 个)
madhan ravi
2019-2-9
If you insist loop then:
Size_1 = 5;
Size_2 = 6;
A = ones(Size_1,Size_2);
for i=1:Size_2
if rem(i,2)==0
A(:,i)=-A(:,i); % if even change the sign
else
A(:,i)=A(:,i);
end
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Identification 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!