2017-11-03 108 views
0

我是MATLAB新手,與其他編程語言相比,他們的數據類型/約定真的很掙扎。例如,我創建了一個簡單的繪圖(例如使用峯值命令),並且只想在所有xticklabels之前包含填充空格。我的MATLAB /僞代碼解決方案是這樣的:在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墊命令,但不是所有的xticklabels的長度相等,因此,我只想增加一個尾部的空格,用墊

回答

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 
} 

或者,可以通過細胞循環連接到每個字符數組:

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