Matlab 如何解决此警告?

Matlab 如何解决此警告?,matlab,Matlab,我不知道如何解决此警告: 警告:从数字到字符的隐式转换 我想调试我的代码,我认为警告是由以下代码行引起的: % Append the hexadecimal representation of the current array element line = [line, '0x',lower(dec2hex(hex_array(i,j),2)), ' ']; 执行时,此警告不会导致任何问题。但是,我需要验证我的结果,这个结果不允许我这么做 如果你能帮助我,我将非常感激 您将数

我不知道如何解决此警告:

警告:从数字到字符的隐式转换

我想调试我的代码,我认为警告是由以下代码行引起的:

   % Append the hexadecimal representation of the current array element

    line = [line, '0x',lower(dec2hex(hex_array(i,j),2)), ' '];
执行时,此警告不会导致任何问题。但是,我需要验证我的结果,这个结果不允许我这么做


如果你能帮助我,我将非常感激

您将数字(即低位(…)与数组中的字符串(即“0x”)连接在一起,因此Matlab必须将您的数字转换为字符串类型,并警告您已经转换为字符串类型,如果结果是您想要的,您可以选择忽略它

如果要避免,请使用单元格数组:

line = {line, '0x',lower(dec2hex(hex_array(i,j),2)), ' '};
或者按照@Suever的建议,将数值变量转换为字符以避免此警告。i、 e:

line = [line, '0x',num2str(lower(dec2hex(hex_array(i,j),2))), ' '];
说明:


Matlab仅允许数组为全数字或全字符(即字符串类型),如果在数组中看到字符串或字符,它将自动将其转换为字符数组

您将数字(即低位(…)与数组中的字符串(即“0x”)连接在一起,因此Matlab必须将您的数字转换为字符串类型,并警告您已经转换为字符串类型,如果结果是您想要的,您可以选择忽略它

如果要避免,请使用单元格数组:

line = {line, '0x',lower(dec2hex(hex_array(i,j),2)), ' '};
或者按照@Suever的建议,将数值变量转换为字符以避免此警告。i、 e:

line = [line, '0x',num2str(lower(dec2hex(hex_array(i,j),2))), ' '];
说明:


Matlab仅允许数组为全数字或全字符(即字符串类型),如果在数组中看到字符串或字符,它将自动将其转换为字符数组

如果试图使用[str1,str2,str3]语法连接字符串,如果其中一个对象不是字符串,则会收到该警告。如果“str2”实际上是一个数字矩阵/标量,那么可以使用num2str(str2)获得字符串表示

话虽如此,可能最好使用sprintf生成该字符串,例如。
s=sprintf(“A的值为%d\n”,myval)

如果您试图使用[str1,str2,str3]语法连接字符串,如果其中一个对象不是字符串,则会收到该警告。如果“str2”实际上是一个数字矩阵/标量,那么可以使用num2str(str2)获得字符串表示

话虽如此,可能最好使用sprintf生成该字符串,例如。
s=sprintf(“A的值为%d\n”,myval)

您正在将字符串与数字连接起来。在MATLAB中,当您执行此操作时,它将显示,因为字符数组具有优先级。要确定数字使用的字符串,它使用代码

为了避免出现警告,应该在连接之前将数字显式转换为字符串。如果要将数字作为字符串,请使用
num2str
sprintf
创建它

['string', num2str(45)]
%   string45
如果您确实想要ASCII等价物,只需将其包装在调用
char
中,将其显式转换为字符串

['string', char(45)]
%   string-

您正在将字符串与数字连接起来。在MATLAB中,当您执行此操作时,它将显示,因为字符数组具有优先级。要确定数字使用的字符串,它使用代码

为了避免出现警告,应该在连接之前将数字显式转换为字符串。如果要将数字作为字符串,请使用
num2str
sprintf
创建它

['string', num2str(45)]
%   string45
如果您确实想要ASCII等价物,只需将其包装在调用
char
中,将其显式转换为字符串

['string', char(45)]
%   string-

您可以将字符串与
[]
连接起来。是的,只需使用
[]
,但要将数字显式转换为字符,以避免警告使用单元格语法可能产生不必要的副作用(例如,引入不需要的换行符)。事实上,单元格语法的主要用途之一是在图形标签/标题中引入换行符:p@rayryeng是的,我实际上开始了一个关于这个的文档。只是指出编辑中的假设“行”是数字可能是错误的。更可能是“01:”之类的。如果不是,那么这可能不是预期的字符串输出,因为行号和十六进制表示之间至少需要一个空格。您可以将字符串与
[]
连接起来。是的,只需使用
[]
,但显式地将数字转换为字符,以避免警告使用单元格语法可能产生不必要的副作用(例如,引入不需要的换行符)。事实上,单元格语法的主要用途之一是在图形标签/标题中引入换行符:p@rayryeng是的,我实际上开始了一个关于这个的文档。只是指出编辑中的假设“line”是数字可能是错误的。它更可能是类似“01:”。如果不是,则可能不是预期的字符串输出,因为行号和十六进制表示之间至少需要一个空格