二维数组和坐标系的对应关系

前言

在开始学习编程时,我们被告知二维数组的形状如下:


图一:二维数组示意图

首先,对于二维数组的形状只是逻辑上的,即只要这两维被想成是夹角为 90° 就行。而大家一般从小到大更熟悉的肯定是坐标轴,那么为什么约定俗成了这样呢?
我认为的一个原因是因为定义成这样更符合写代码的习惯,例如下面的代码:

int a[2][2] = {{1, 2},
			   {3, 4}}

因为写代码是从上往下,左往右写,所以新加入的元素是出现在下方、右方,所以习惯将二维数组想成图一的形状。

缺点

正如上面说过的,我们已经习惯了数学中坐标系的定义了,有时候我们在编程时需要用到二维的数学知识时就会觉得程序中二维数组元素不方便对应到数学公式中。
例如在经典的8皇后问题中我们需要通过二维数组两个维度的坐标来确定某个斜边时,我们有现成的公式,但是脑海中我们对二维数组的认识其实就是图一中显示的,这让我们不能立刻将公式转换成代码。

解决办法

其实前言中说过了, 二维数组的形状是只是逻辑的,其两个维度只要被想成是正交的即可。所以缺点中的情况,我们只需将图一中的形状逆时针旋转 90° 就变成了我们熟悉的坐标系表示,并且因为本质是一样的,所以不存在这种思维的转变会带来什么错误。


图二:转化
此时对于“缺点”中的例子,我们直接用某个元素 ele 的第 0 维坐标 x, 第 1 维坐标 y,利用 y = x + b,将 b 来唯一标识某个斜线即可。
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将Matlab中的二维数组变成三维图像,可以使用plot3函数。plot3函数可以绘制三维曲线或散点图。首先,需要将二维数组转换为三维坐标系中的点。可以使用meshgrid函数生成x、y坐标,并将二维数组作为z坐标。然后,使用plot3函数绘制三维图像。 以下是一个示例代码: ```matlab % 生成x、y坐标 \[x, y\] = meshgrid(1:size(A, 2), 1:size(A, 1)); % 将二维数组A作为z坐标 z = A; % 绘制三维图像 plot3(x(:), y(:), z(:), 'o'); ``` 这段代码将二维数组A的行绘制为x坐标,列绘制为y坐标数组元素作为z坐标。然后使用plot3函数绘制三维图像。每个点的坐标由x、y、z三个数组对应元素确定。 请注意,这只是一个简单的示例,具体的绘图方式可能需要根据具体的需求进行调整。 #### 引用[.reference_title] - *1* *2* [matlab中二维图像的绘制](https://blog.csdn.net/ZHLY0307/article/details/119713320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MATLAB--二维图像和三维图像的绘制](https://blog.csdn.net/m0_58585940/article/details/127602879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Drdajie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值