输出错误并带有特殊符号“[square]”,尽管相同的代码在 "Octave-online" 中有效
Wrong output and with a special sign "[square]" although same code works in "Octave-online"
Octave 6.1.0 (GUI)
这是 的衍生产品。
>> a = 1:3;
>> cellstr(int2str(a(:)))
ans =
{
[1,1] = "[square]"
}
虽然输出应该是:
ans =
{
[1,1] = 1
[2,1] = 2
[3,1] = 3
}
如何解决这个问题?
仅供参考,不作为答案,没有此问题的解决方法是 cellstr(num2str(a(:)))
。
这是一个可怕的初学者错误造成的。
问题下的第一个帮助评论已经指明了方向。
如果在线 Octave 与您的 GUI 完全不同,那可能是您的错。
为了找到问题,检查可能导致差异的功能:
>>哪个('num2str')
'num2str' 是文件 C:\Users\USERNAME\AppData\Local\Programs\GNU Octave\Octave-6.1.0\mingw64\share\octave.1.0\m\general\num2str.m[=12= 中的函数]
>>哪个('cellstr')
'cellstr' 是文件 libinterp/octave-value/ov-cell.cc
中的内置函数
哪个('int2str')
>>哪个('int2str')
'int2str'是一个变量`
因为一些未知的原因我只测试了其他函数,而不是 'int2str',我无意中发现了使用隐藏函数时的错误:
>> strcat('x', num2cell(int2str(1:10)))
错误:int2str(10):超出范围 3(尺寸为 1x3)
(注:变量'int2str'阴影函数)
无论出于何种原因,我通过分配 int2str = [1:3]
不小心隐藏了函数,导致了奇怪的行为。
Arbeitsumgebung = work environment:
Octave 6.1.0 (GUI)
这是
>> a = 1:3;
>> cellstr(int2str(a(:)))
ans =
{
[1,1] = "[square]"
}
虽然输出应该是:
ans =
{
[1,1] = 1
[2,1] = 2
[3,1] = 3
}
如何解决这个问题?
仅供参考,不作为答案,没有此问题的解决方法是 cellstr(num2str(a(:)))
。
这是一个可怕的初学者错误造成的。
问题下的第一个帮助评论已经指明了方向。
如果在线 Octave 与您的 GUI 完全不同,那可能是您的错。
为了找到问题,检查可能导致差异的功能:
>>哪个('num2str')
'num2str' 是文件 C:\Users\USERNAME\AppData\Local\Programs\GNU Octave\Octave-6.1.0\mingw64\share\octave.1.0\m\general\num2str.m[=12= 中的函数]
>>哪个('cellstr')
'cellstr' 是文件 libinterp/octave-value/ov-cell.cc
中的内置函数哪个('int2str')
>>哪个('int2str')
'int2str'是一个变量`
因为一些未知的原因我只测试了其他函数,而不是 'int2str',我无意中发现了使用隐藏函数时的错误:
>> strcat('x', num2cell(int2str(1:10)))
错误:int2str(10):超出范围 3(尺寸为 1x3)
(注:变量'int2str'阴影函数)
无论出于何种原因,我通过分配
int2str = [1:3]
不小心隐藏了函数,导致了奇怪的行为。
Arbeitsumgebung = work environment: