在xticklabels(MATLAB)中的值之前添加空格

时间:2017-11-03 22:13:41

标签: arrays string matlab matlab-figure

我是MATLAB的新手,与其他编程语言相比,他们的数据类型/约定确实很难。

例如,我创建了一个简单的绘图(例如使用peak命令),并且只想在所有xticklabels之前包含填充空间。因此,我的MATLAB /伪代码解决方案是:

labels = xticklabels;    # Get labels
newlabels = xticklabels;  # Create new array 
i = 1
for label in labels   # Loop through all labels
    label = ' ' + label   # Add single character pad
    newlabels(i) = label  # Update new labels array
    i = i + 1

set(gca,'XTickLabel', {newlabels})  # Set plot to use new array

我怎么能实现这个目标?我觉得应该可以简单地

谢谢!

PS,我在MATLAB2017中找到了pad命令,但并不是我所有的xticklabels长度相等,因此,我只想添加一个尾随空格,而不是使用pad修复总字符串长度

1 个答案:

答案 0 :(得分:2)

给定字符串的单元格数组,最简单的方法是使用strcat

labels = {'1','2','3','4'};
newlabels = strcat('x',labels);   % append 'x' because it's more visible

结果:

newlabels =
{
  [1,1] = x1
  [1,2] = x2
  [1,3] = x3
  [1,4] = x4
}

或者,您可以遍历单元格数组并连接到每个char数组:

newlabels = cell(size(labels));   % preallocate cell array
for k = 1:numel(labels)
   newlabels{k} = ['x', labels{k}];   % concatenate new char to existing label
end