Matlab 关于矩阵索引

Matlab 关于矩阵索引,matlab,Matlab,我有一个大小为(16,16)的零矩阵p;我需要将列1:4:end中的前4行替换为1,然后将列2:4:end中的下4行替换为1,依此类推。 我已经这样做了,但是我注意到在第二行中,第1列和第2列中重复了这些内容,但是我只想在第1:4:end列中重复这些内容 以下是我编写的代码: P = zeros(16,16); for i = 1 : 4 P(i:i*4,i:4:end)=1; end 你能帮我解决那个问题吗 将所选行移位(ii-1)*4 顺便说一句:避免使用i作为变量,因为返回

我有一个大小为(16,16)的零矩阵p;我需要将列1:4:end中的前4行替换为1,然后将列2:4:end中的下4行替换为1,依此类推。 我已经这样做了,但是我注意到在第二行中,第1列和第2列中重复了这些内容,但是我只想在第1:4:end列中重复这些内容

以下是我编写的代码:

P = zeros(16,16); 
for i = 1 : 4 
    P(i:i*4,i:4:end)=1; 
end

你能帮我解决那个问题吗

将所选行移位
(ii-1)*4


顺便说一句:避免使用
i
作为变量,因为返回虚单位的是matlab内置函数。

将所选行移位
(ii-1)*4

顺便说一句:避免使用
i
作为变量,因为返回虚单位的是matlab内置函数

P = zeros(16,16); 

for ii = 1:4 
    P([1:4]+(ii-1)*4,ii:4:end)=1; 
end