-1

八度 6.1.0 (GUI)

这是 Octave 的衍生产品:如何将整数向量转换为字符串元胞数组?.

>> a = 1:3;
>> cellstr(int2str(a(:)))
ans =
{
  [1,1] = "[square]" 
}

在此处输入图像描述

虽然输出应该是:

ans =
{
  [1,1] = 1
  [2,1] = 2
  [3,1] = 3
}

八度在线.net

在此处输入图像描述

如何解决这个问题?

仅供参考,不作为答案,没有此问题的解决方法是cellstr(num2str(a(:))).

4

1 回答 1

1

这是由一个可怕的初学者的错误造成的。

问题下的第一个帮助评论已经指明了方向。

  1. 如果在线 Octave 与您的 GUI 完全不同,那可能是您的错。

  2. 为了找到问题,请检查可能导致差异的功能:

    >> 其中('num2str')

    'num2str' 是文件 C:\Users\USERNAME\AppData\Local\Programs\GNU Octave\Octave-6.1.0\mingw64\share\octave\6.1.0\m\general\num2str.m 中的一个函数

    >> 其中('cellstr')

    'cellstr' 是文件 libinterp/octave-value/ov-cell.cc 中的内置函数

    其中('int2str')

    >> 其中('int2str')

    'int2str' 是一个变量`

  3. 由于出于某种未知原因,我只测试了其他函数,但没有测试“int2str”,所以我在使用阴影函数时意外发现了错误:

    >> strcat('x', num2cell(int2str(1:10)))

    错误:int2str(10):超出界限 3(尺寸为 1x3)

    (注意:变量'int2str'阴影函数)

  4. 无论出于何种原因,我不小心通过分配来隐藏该功能int2str = [1:3],从而导致奇怪的行为。

Arbeitsumgebung = 工作环境: 在此处输入图像描述

于 2021-01-04T11:22:37.403 回答