Matlab 如何始终为矩阵的最后两行赋值?

Matlab 如何始终为矩阵的最后两行赋值?,matlab,matrix,Matlab,Matrix,你好,我有这个密码 r = input('key in row: '); c = input('key in column: '); board = zeros(r,c); for i = 1:r for j = 1:c board(i,j) = 1 if i > 2 board(i,j) = 0 end end end 我希望始终将矩阵的最后两行分配给值“2”,而不管用户对“r”和“c”的输入是什么。只需在循环后执行以下

你好,我有这个密码

r = input('key in row: ');
c = input('key in column: ');

board = zeros(r,c);

for i = 1:r
for j = 1:c
     board(i,j) = 1

     if i > 2

         board(i,j) = 0




     end

end
end

我希望始终将矩阵的最后两行分配给值“2”,而不管用户对“r”和“c”的输入是什么。

只需在循环后执行以下操作:

>> board(end-1:end,:)=2

只需在循环后执行以下操作:

>> board(end-1:end,:)=2

只需在循环后执行以下操作:

>> board(end-1:end,:)=2

只需在循环后执行以下操作:

>> board(end-1:end,:)=2

为什么不避开这些循环呢

board = [ones(2,c);zeros(r-4,c);2*ones(2,c)];

这适用于r>3。对于较小的r,问题中不清楚期望的行为是什么,但对于这些情况,类似的方法是显而易见的。

为什么不避免循环,直接做呢

board = [ones(2,c);zeros(r-4,c);2*ones(2,c)];

这适用于r>3。对于较小的r,问题中不清楚期望的行为是什么,但对于这些情况,类似的方法是显而易见的。

为什么不避免循环,直接做呢

board = [ones(2,c);zeros(r-4,c);2*ones(2,c)];

这适用于r>3。对于较小的r,问题中不清楚期望的行为是什么,但对于这些情况,类似的方法是显而易见的。

为什么不避免循环,直接做呢

board = [ones(2,c);zeros(r-4,c);2*ones(2,c)];

这适用于r>3。对于较小的r,不清楚问题中期望的行为是什么,但对于这些情况,类似的方法是显而易见的。

对于更好的答案,请执行董事会(end-1:end,:)=2;;)@AnderBiguri是的,我随机使用了5,5来获得输出,无论如何,感谢您提供了一个更好的答案do board(end-1:end,:)=2;)@AnderBiguri是的,我随机使用了5,5来获得输出,无论如何,感谢您提供了一个更好的答案do board(end-1:end,:)=2;)@AnderBiguri是的,我随机使用了5,5来获得输出,无论如何,感谢您提供了一个更好的答案do board(end-1:end,:)=2;)@AnderBiguri是的,我随机使用了5,5来获得输出,无论如何,谢谢