打印

dsp中用导入的.dat矩阵运算

[复制链接]
1091|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xuqi815|  楼主 | 2016-10-25 19:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在某个地址load进来的.dat数据,赋值给float *dat;
dat=(float *)(地址);
然后赋值给一个矩阵matrix A
定义的结构体 matrix{int row,int col; double **mat}
用两个for循环赋值

*(*(A.mat+i*n)+j)=((*dat)+i*n)+j//大概是这样 ,记不清了
dsp仿真条件下运行,只能单步几个for循环,就开始报错 说memroy acess error
但是左边如果直接用二维数组赋值就可以
可是算法要用到很多矩阵运算,也不知道中间结果的维数,用二维数组不现实,
上面的结构体形式的算法在VC6中可以运行成功,dsp就不行了
求教各路大神!怎么办!!

相关帖子

沙发
enginezhong| | 2016-10-25 20:15 | 只看该作者
应该还是数组的问题,数组越界了吧。

使用特权

评论回复
板凳
zhangmangui| | 2016-10-25 22:59 | 只看该作者
DSP上跑  都是根据不同型号  有对应的存储区   
和VC不能对比

使用特权

评论回复
地板
lzmm| | 2016-10-26 22:03 | 只看该作者
没有试过这个矩阵运算。

使用特权

评论回复
5
chuntian2016| | 2016-10-26 22:07 | 只看该作者
这个仿真调试下的看看。。查找下原因还是不难的。

使用特权

评论回复
6
lzmm| | 2016-10-26 22:08 | 只看该作者
可以在matlab里面仿真一下。

使用特权

评论回复
7
xuqi815|  楼主 | 2016-10-26 22:54 | 只看该作者
enginezhong 发表于 2016-10-25 20:15
应该还是数组的问题,数组越界了吧。

可是数组很大怎么办 中间变量的矩阵也很多

使用特权

评论回复
8
xuqi815|  楼主 | 2016-10-26 22:56 | 只看该作者
zhangmangui 发表于 2016-10-25 22:59
DSP上跑  都是根据不同型号  有对应的存储区   
和VC不能对比

用的6713仿真的 大概是10000*800的数组,和800*1的数组,二者相乘或者对结果加、减、转置。需要对所有中间变量定义存储区域吗  这样很大的  

使用特权

评论回复
9
gaoxiansheng| | 2016-10-27 21:58 | 只看该作者
dsp中用导入的.dat矩阵运算,对这个比较感兴趣,如何导入呢?

使用特权

评论回复
10
gygp| | 2016-10-27 22:40 | 只看该作者
dat里面包括哪些数据呢?

使用特权

评论回复
11
gygp| | 2016-10-27 22:44 | 只看该作者
VC6的读取机制一样的吗?

使用特权

评论回复
12
FCCdsp| | 2016-10-29 23:00 | 只看该作者
那个型号的?

使用特权

评论回复
13
Sode| | 2016-10-30 16:30 | 只看该作者
应该是数组越界了

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
xuqi815 + 1 赞一个!
14
xuqi815|  楼主 | 2016-11-6 20:52 | 只看该作者
知道原因了 虽然对matrix A分配了内存 但是  里面的指针没有确切的长度 会乱分配到别的地方 然后不能用

使用特权

评论回复
15
xuqi815|  楼主 | 2016-11-6 21:31 | 只看该作者
gaoxiansheng 发表于 2016-10-27 21:58
dsp中用导入的.dat矩阵运算,对这个比较感兴趣,如何导入呢?

按格式存一个.dat数据 ;再从你设置的地址那导入  load

使用特权

评论回复
16
lihuami| | 2016-11-7 22:35 | 只看该作者
这个不是在matlab里面实现的矩阵导入吗

使用特权

评论回复
17
lihuami| | 2016-11-7 22:38 | 只看该作者
DSP确实没有实现过这些数据运算。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

18

帖子

1

粉丝