matlab中多维数组存储方式
我知道matlab数组是按列存储数据的,那么对于多维数组是否也满足这个规律呢?假设matlab产生的数据为a[10][5][3],在C中怎么读取它呢?假设指针p指向a[0...
我知道matlab数组是按列存储数据的,那么对于多维数组是否也满足这个规律呢?
假设matlab产生的数据为a[10][5][3],在C中怎么读取它呢?
假设指针p指向a[0][0][0],那么
for(k=0;k<3;k++)
for(j=0;j<5;j++)
for(i=0;i<10;i++)
a[i][j][k]=*(p+k*5*10+j*10+i);
这样将数据读取出来可以吗? 展开
假设matlab产生的数据为a[10][5][3],在C中怎么读取它呢?
假设指针p指向a[0][0][0],那么
for(k=0;k<3;k++)
for(j=0;j<5;j++)
for(i=0;i<10;i++)
a[i][j][k]=*(p+k*5*10+j*10+i);
这样将数据读取出来可以吗? 展开
推荐于2016-03-23 · 知道合伙人互联网行家
关注
展开全部
1.一个三维数组由行、列和页三维组成,其中每一页包含一个由行和列构成的二维数组。
2.利用标准数组函数创建多维数组
A=zeros(4,3,2) 生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似的用法。
3.利用直接索引方式生成多维数组
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代码先生成一个二维数组作为三维数组的第一页,然后通过数组直接索引,添加第二页、第三页。
2.利用标准数组函数创建多维数组
A=zeros(4,3,2) 生成一个4行3列2页的三维全0数组,ones,rand和randn等函数有相似的用法。
3.利用直接索引方式生成多维数组
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代码先生成一个二维数组作为三维数组的第一页,然后通过数组直接索引,添加第二页、第三页。
展开全部
可以的,多维数组的存储也是按列来,可以看看matlab中函数ind2sub的帮助文档
ind2sub和sub2ind是下标和存储序号相互转换的函数。
ind2sub和sub2ind是下标和存储序号相互转换的函数。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这不是matlab程序
追问
数据a由matlab已经产生了,保存在内存中,返回了首地址供C使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询