matlab - 当行和列都为奇数或均为偶数时为 1 的矩阵
问题描述
我想创建一个矩阵,它具有:
- 如果行是奇数列是奇数,则值为 1
- 如果行为偶数且列为偶数,则值为 1
- 值 0 否则。
我想得到与下面的代码相同的结果,但是在一行(命令窗口)表达式中:
N=8;
A = zeros(N);
for row = 1:1:length(A)
for column = 1:1:length(A)
if(mod(row,2) == 1 && mod(column,2) == 1)
A(row,column*(mod(column,2) == 1)) = 1;
elseif(mod(row,2)== 0 && mod(column,2) == 0 )
A(row,column*(mod(column,2) == 0)) = 1;
end
end
end
disp(A)
这是预期的结果:
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
解决方案
一种简单的方法是使用加法的隐式扩展,注意到
odd+odd = even+even = 0
所以这是你的答案:
A = 1 - mod( (1:N) + (1:N).', 2 );
您也可以使用 执行此操作toeplitz
,如本MATLAB Answers Post所示
对于行数 = 列数 = 的方阵N
A = toeplitz(mod(1:N,2));
如果行数 ( M
) 不等于列数 ( N
) 则
A = toeplitz(mod(1:M,2),mod(1:N,2))
FWIW,你在问这个问题的一个具体案例:
推荐阅读
- ios - 使用一键式 React Native 实现捏缩放
- python - 使用python从完整物理地址中查找纬度和经度
- javascript - 如何在悬停到单个元素时选择多个元素
- xcode - 可以在 iOS 应用程序中支持(部分)本地化而不在应用商店中出现本地化吗?
- javascript - Javascript - 将录制的音频流式传输为麦克风输入
- android - 我的表单键没有在颤振中验证,即使在我将它用作表单中的键并输入合适的值之后
- android - 如何根据条件在 recyclerView 中隐藏子项?
- amazon-s3 - hadoop fs -ls s3://bucket 或 s3a://bucket 抛出“没有这样的文件或目录”错误
- linux - 在 openscap 中修复后反转规则
- java - 设置拥有方ID