Octave - strcat()在使用单个参数调用时不会修剪尾随空格

时间:2016-09-14 19:52:40

标签: matlab octave

为什么只有一个参数的strcat()无法修剪尾随空格?

我正在尝试使用strcat()从字符数组中修剪尾随空格:

s = "cheese   ";
s = strcat(s);

但是返回s = "cheese ",即空白没有变化。如果我向strcat()添加第二个参数,例如s = strcat(s, "");现在s = "cheese"

我这样做,而不是调用strtrim(),因为这显然是zyBooks教科书希望我们为单个字符串完成此任务 - 他们的示例显示以这种方式使用strcat()。我在俯瞰什么?

2 个答案:

答案 0 :(得分:2)

您的代码确实删除了Matlab中的尾随空格,但未删除Octave中的尾随空格。有时会发生这种情况:Octave的函数或多或少像Matlab一样,但有一些差异。有时这些差异是无意的,有时则不是。

在这种情况下,我认为您遇到的行为是Octave函数中的错误,因为它的documentation表示

  

在连接字符串之前,消除了任何字符串输入的尾随空格。

当有一个字符串作为输入时,它不是它正在做的事情。

答案 1 :(得分:0)

几小时后

This Bug was reported on savannahfixed on the default branch

您可以等待包含此更改的下一个版本,或者只需下载strcat.m from the mercurial repo并在Octave安装中替换strcat.m。