matlab 二维数组转一维数组中,将二维数组映射到一维数组上

C语言使用multidimensional array的行顺序

要用单维数组来模拟这个,可以将行索引乘以宽度,然后添加列索引:

int array[width * height]; int SetElement(int row, int col, int value) { array[width * row + col] = value; }

例如:我们想要表示一个SIZE_X和SIZE_Y大小的二维数组。 这意味着我们将有MAXY连续的MAXX大小的行。 因此设定的function是

void set_array( int x, int y, int val ) { array[ x * SIZE_Y + y ] = val; }

得到的将是:

int get_array( int x, int y ) { return array[ x * SIZE_Y + y ]; }

二维数组索引重新计算为一维数组索引的典型公式为:

index = indexX * arrayWidth + indexY;

或者你可以使用

index = indexY * arrayHeight + indexX;

(假设arrayWidth是沿X轴测量的, arrayWidth是沿着Y轴的)

当然,可以提出许多不同的公式来提供可选的独特映射,但通常不需要。

在C / C ++语言中,内置的multidimensional array存储在内存中,这样最后一个索引变化最快,这意味着对于声明为

int xy[10][10];

元素xy[5][3] xy[5][4]在内存中紧跟着xy[5][4] 。 您可能也

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值