Matrix column extraction not working when using codegen
이전 댓글 표시
I'm trying to integrate some Matlab code with some C code, using codegen. For this task I need to extract some columns of data from a Matlab matrix.
The Matlab code runs fine but the C code does not appear to be extracting the columns correctly.
For example, if I have:
a=[1 2 3; 4 5 6; 7 8 9];
and I perform the following:
a1 = a(:,1);
a2 = a(:,2);
disp(a1);
disp(a2);
Then I get the expected output:
1
4
7
2
5
8
However, if I run codegen (on a slightly larger set) the C code is:
memcpy(&a1[0], &a[0], 30U * sizeof(double));
memcpy(&a2[0], &a[30], 30U * sizeof(double));
which results in the ouput:
1
2
3
4
5
6
Note: My actual data is read in from a large .csv file so I have simplified the details above to show the problem.
Also, with the large data files, the generated C code is using for loops rather than memcpy but that's by the by because the results are still the same.
Any suggestions would be most welcome.
Thanks very much,
John
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Performance에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!