如何初始化一个字符串变量,并将其传递给使用GPU编码器matlab的函数

14日视图(30天)
如何在自定义主要初始化一个字符串。铜文件并将其传递给使用GPU编码器matlab的函数?我想看看Matlab文档,我找不到任何引用。我希望任何专家的帮助。
我试着使用matlab编制今年的月份,nvidia exectuable文件功能,
函数 = test_predict (img, SS)
%党卫军是字符串类型例如SS =“ABCD”;
持久mynet1;
持续的 mynet2;
如果 (strncmp (SS, “GR1一起” 2)= = true) & & isempty (mynet1)
a1 = “DLmodel1.mat” ;
mynet1 = coder.loadDeepLearningNetwork (a1);
=预测(mynet1, img);
其他的
a2 = “DLmodel2.mat” ;
mynet2 = coder.loadDeepLearningNetwork (a2);
=预测(mynet2, img);
结束
主要的例子。创建铜文件如下:
/ /函数声明
静态 无效 argInit_1x4_char_T ( 字符 结果[4]);
静态 无效 argInit_299x299x3_real32_T ( 浮动 结果[268203]);
静态 字符 argInit_char_T ();
静态 浮动 argInit_real32_T ();
静态 编码器:rtString argInit_rtString ();
静态 无效 main_test_predict ();
/ /函数定义
静态 无效 argInit_1x4_char_T ( 字符 结果[4])
{
/ /遍历该数组初始化每个元素。
( int idx1 {0};idx1 < 4;idx1 + +) {
/ /设置数组元素的值。
/ /修改这个值,应用程序需要的价值。
结果[idx1] = argInit_char_T ();
}
}
静态 无效 argInit_299x299x3_real32_T ( 浮动 结果[268203])
{
/ /遍历该数组初始化每个元素。
( int idx0 {0};idx0 < 299;idx0 + +) {
( int idx1 {0};idx1 < 299;idx1 + +) {
( int idx2 {0};idx2 < 3;idx2 + +) {
/ /设置数组元素的值。
/ /修改这个值,应用程序需要的价值。
结果[(idx0 + 299 * idx1) + 89401 * idx2] = argInit_real32_T ();
}
}
}
}
静态 字符 argInit_char_T ()
{
返回 “?” ;
}
静态 浮动 argInit_real32_T ()
{
返回 0.0度 ;
}
静态 编码器:rtString argInit_rtString ()
{
编码器:rtString结果;
/ /设置每个结构字段的值。
/ /修改这个值,应用程序需要的价值。
argInit_1x4_char_T (result.Value);
返回 结果;
}
静态 无效 main_test_predict ()
{
静态 浮动 b [268203];
编码器:rtString c;
浮动 out_data [28];
int out_size [2];
argInit_299x299x3_real32_T (b);
c = argInit_rtString ();
testdefclass_predict (b,明目的功效,out_data out_size);
}
int 主要( int , 字符 * * )
{
/ /初始化函数被称为自动从你的入口点
/ /函数。所以,这里不包括调用初始化。调用
/ /入口点函数。
/ /可以多次调用入口点函数。
/ / SS是变量和阅读从一个文本文件
文件* fp = fopen (flile1.txt, r);
char党卫军[5]=“ABCD”;
main_test_predict ();
/ /终止应用程序。
/ /不需要超过一次。
test_predict_terminate ();
返回 0;
}
/ /代码生成(main.cu)结束
你能请

接受的答案

神骑士
神骑士 2022年11月14日
编辑:神骑士 2022年11月14日
MATLAB和Simu金宝applink代码生成目前不支持金宝app 字符串
编辑:对不起,我的坏,它 金宝app支持标量字符串,而不是字符串数组。

更多的答案(2)

Hariprasad Ravishankar
Hariprasad Ravishankar 2022年11月11日
人力资源 ,
你真的需要吗 字符串 数据类型吗?通常它容易使用 字符 数据类型作为输入一个入口点函数。
例如,对于下面的入口点函数
函数= foo ()
=比较字符串(在,“苹果”);
结束
> > codegen fooargs{“芒果”}配置:dll
编码器生成:
boolean_Tfoo (const char [5])
你可以通过一个char数组作为输入入口点:
无效main_foo(空白)
{
char简历[5];
boolean_T;
/ *初始化函数“foo”输入参数。* /
/ *初始化函数输入参数“在”。* /
/ *调用入口点“foo”。* /
argInit_1x5_char_T(简历);
= foo(简历);
}
进一步说,如果你知道输入在codegen时间将是一个常数,不会改变在运行时,您可以指定使用它作为一个常数 codegen 命令:
> > codegen fooargs {coder.Constant(芒果)}配置:dll
这样你不会把它作为输入,生成的函数从你 main ()

人力资源
人力资源 2022年11月11日
编辑:沃尔特·罗伯森 2022年11月11日
谢谢你!“通过字符”建议帮助。你能给一个线索如何intialize字符?这是下面的正确方法吗?
静态空白argInit_1x4_char_T (char[4]结果,char党卫军[4])
{
/ /遍历该数组初始化每个元素。
(int idx1 {0};idx1 < 4;idx1 + +) {
/ /设置数组元素的值。
/ /改变这应用程序需要的价值。
结果[idx1] =党卫军[idx1);
}
}
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年11月11日
静态空白argInit_1x4_char_T (char[4]结果,char党卫军[4]){
memcpy(因此,SS, 4);
}

登录置评。

类别

找到更多的在深度学习GPU编码器帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!