matlab - 如何在 MATLAB 中制作特定的矩阵?
问题描述
我正在尝试制作一个长度为 N 的方阵,其中最后一行中的数字从下一行开始,并且在达到 N 后数字重复。我希望它处于 for 循环中。
示例 1:
[1 2 3 4;
4 1 2 3;
3 4 1 2;
2 3 4 1]
示例 2:
[1 2 3 4 5;
5 1 2 3 4;
4 5 1 2 3;
3 4 5 1 2;
2 3 4 5 1]
有什么建议么?
这是我得到的最接近的:
q =1;
N=4;
for n = 0:N-1
for m = 0:N-1
if q < N
C(n+1,m+1) = q;
q = q + 1;
elseif q == N
C(n+1,m+1) = q;
q = q + 1;
elseif q > N
C(n+1,m+1) = q-1;
q = 1;
end
end
end
结果:
[1 2 3 4
4 1 2 3
4 4 1 2
3 4 4 1]
从第 2 排到第 3 排有些东西搞砸了,我不知道该去哪里。
解决方案
一种使用模数的解决方案:
n = 5;
A = [n:(2*n-1)]-[0:(n-1)].';
R = mod(A,n)+1
% R =
% [1 2 3 4
% 4 1 2 3
% 3 4 1 2
% 2 3 4 1]
推荐阅读
- javascript - 导入 Office ui/Bootstrap 时出现“Uncaught SyntaxError: Unexpected token export”
- javascript - Electron:如何安全地将全局变量注入 BrowserWindow / BrowserView?
- postgresql - Neo4j 关系属性索引的最佳实践?
- kubernetes - k8s 中的哪个 API 组
- linux - 如何更新 minikube 最新版本?
- javascript - 计算动态创建的 Div 元素和所有子元素的加载时间
- d3.js - d3.axis.ticks() 将被忽略
- apache-spark - 用户在使用 spark.sql 读取数据时没有 ALTERTABLE_ADDCOLS 的权限
- java - 即使应用程序处于后台,服务也会被终止
- angular6 - node_modules/raven-js/typescript/raven.d.ts(205,11) 中的错误:错误 TS2304:找不到名称“未知”