matlab - 我如何在 Matlab 中创建这个矩阵?

标签 matlab

我正在尝试解决 Code Golf: Build Me an Arc问题。我的解决方案还不错,但我想,有一种更简单的方法可以做到这一点。在给定 n 的情况下,有人知道如何生成这样的 nxn 矩阵吗?我花了 57 个字符得到它!

 3     0     0     0     2     0     0     0     1
 0     3     0     0     2     0     0     1     0
 0     0     3     0     2     0     1     0     0
 0     0     0     3     2     1     0     0     0
 4     4     4     4     8     8     8     8     8
 0     0     0     5     6     7     0     0     0
 0     0     5     0     6     0     7     0     0
 0     5     0     0     6     0     0     7     0
 5     0     0     0     6     0     0     0     7

我想打败其中的一些matrices成型。

更新:

这就是我现在得到它的方式。

%%# Create the grid
[X Y]=meshgrid(-r:r);
%%# Compute the angles in degrees
T=atan2(-Y,X)/pi*180;
%%# Get all the angles
T=T+(T<=0)*360;

如您所见,我不需要 T 中的大部分条目。

最佳答案

由于这与 Code Golf 问题相关,请考虑:

[X Y]=meshgrid(r:-1:-r,-r:r);
T=180+atan2(Y,X)*180/pi;

这将为您节省 3 个字符...

关于matlab - 我如何在 Matlab 中创建这个矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374730/

相关文章:

Matlab:格式化轮廓标签中的小数

matlab - L1-Regularized系统的最小化,收敛于非最小位置?

java - 如何让 MATLAB 在 CMD 上运行?

matlab - 为出版创造数字 - 导出人工制品

matlab - 强制评估 MATLAB 匿名函数中的变量

2012a 版中的 matlab fsolve 更改

matlab - 通过插入相邻元素平均值来扩展 2*2 矩阵

编写 matlab .mat 文件的 Linux 实用程序

matlab - 使用蒙特卡罗方法将矩阵元素扰动到其标称值周围约 10%

c# - 在 64 位上没有修改权限的情况下,从 UNC 路径加载 .Net 程序集失败