Seç*_*şçı 5 matlab matrix vectorization
我需要一个矩阵nxn,其中第一个pxp包含1,其余为零.我可以通过遍历细胞来做到这一点,所以我不是想办法去做.我正在寻找" MATLAB方式",使用内置函数和避免循环等.
更清楚;
让n=4 and p=2,
然后预期的结果是:
1 1 0 0
1 1 0 0
0 0 0 0
0 0 0 0
Run Code Online (Sandbox Code Playgroud)
可能有不止一个优雅的解决方案,所以我会接受最短和最可读的答案.
PS问题标题看起来有点无关紧要:我把这个标题放在首位,因为我的初始方法是创建一个pxp带有1 的矩阵,然后nxn用零填充它.
And*_*ein 10
答案是创建一个零矩阵,然后将其中的一部分设置为1使用索引:
例如:
n = 4;
p = 2;
x = zeros(n,n);
x(1:p,1:p) = 1;
Run Code Online (Sandbox Code Playgroud)
如果您坚持扩展,可以使用:
padarray( zeros(p,p)+1 , [n-p n-p], 0, 'post')
Run Code Online (Sandbox Code Playgroud)
用零扩展矩阵的另一种方法:
>> p = 2; n = 4;
>> M = ones(p,p)
M =
1 1
1 1
>> M(n,n) = 0
M =
1 1 0 0
1 1 0 0
0 0 0 0
0 0 0 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12676 次 |
| 最近记录: |