在MatLab中使用变量定义字符

mlmc2os5  于 2022-11-15  发布在  Matlab
关注(0)|答案(3)|浏览(235)

我有一个变量

filterSize = 3; %Size of the Filter;

我想定义一个名为SIZE的新字符变量,并将其赋值为
大小=(过滤器大小x过滤器大小)

size='3x3';

但我想使用FilterSize来实现自动化。大小需要为字符。谢谢

ars1skjm

ars1skjm1#

您可以使用sprintf来格式化包含变量的字符

filterSize = 3;
sz = sprintf( '%dx%d', filterSize, filterSize );

您应该避免使用size作为变量名,因为您正在隐藏一个常用的内置函数。

zfycwa2u

zfycwa2u2#

我已经解决了这个问题。

size_temp = [string(filterSize),'x',string(filterSize)];
a = convertStringsToChars(size_temp);
x=char(size_temp(1));
y=char(size_temp(2));
z=char(size_temp(3));
size = [x,y,z]

但正如cris luengo在评论中所建议的那样,size = [num2str(filterSize),'x', num2str(filterSize)]是一个更好的解决方案。

lstz6jyr

lstz6jyr3#

MatLab有一个功能,可以准确地完成您所要求的:。
调用通用示例:
Evin(‘base’,[‘输出=’,表达式])
MatLab函数帮助参考:
https://uk.mathworks.com/help/matlab/ref/evalin.html?s_tid=srchtitle_evalin_1
为代码中的新变量赋值有批评者和支持者,因为它是用代码编写新代码的利器。
我与Mathworks论坛的一名成员就如何使用valin进行了几次激烈的讨论。
当有人鼓吹不要做某事,因为他们认为这是有罪的,但他们一直在做,人们通常应该避免使用valin在现有代码中简洁地构建新代码,这是毋庸置疑的。
我建议您忽略valin帮助页面中的最后一行,其中有人不鼓励您使用valin来准确地做您需要做的事情,以解决您的问题。
希望能有所帮助

相关问题