我找到了一些细胞解决方案,但没有使用Numberarrays。
问题很简单,我有一个Array a=(0,1,2,3,4,5,6,7)
,我想用“blankspace”更改每个其他值,就像这个a=(0,'',2,''...)
一样,这样数组保持相同的长度,但只有其他值。
当我尝试这样的事情a(2:2:end)='';
时
我得a=(0,2,4,6)
长度不一样。
当我尝试a(2:2:end)=blanks(1);
时
它几乎可以工作:),但不完全是,我得到a=(0,'32',2,'32',4,'32'...)
我知道实际上32意味着'空间'(ASCII)实际意味着它正常工作。然后我尝试使用它来设置我的TickLabel,但它将其解释为32,而不是像ASCII。
答案 0 :(得分:2)
您不能在数字数组中引入空格作为条目。你只能引入数字。
如果您希望将其用作刻度标签,请转换为单元格数组,然后您可以设置一些单元格'内容到[]
(空):
a = [0 1 2 3 4 5 6 7]; % original vector
a = num2cell(a); % convert to cell
a(2:2:end) = {[]}; % set some cells' contents to []
x = 1:8; % x data for example plot
y = x.^2; % y data for example plot
plot(x, y) % x plot the graph
set(gca, 'xticklabels', a) % set x tick labels
要获得没有科学记数法的刻度标签,请使用适当格式的num2str
:
a = [0 1 2 3 4 5 6 7]*1e6; % original vector
a = num2cell(a); % convert to cell
a(2:2:end) = {[]}; % set some cells' contents to []
a = cellfun(@num2str, a, 'Uniformoutput', false); % convert each number to a string
x = [0 1 2 3 4 5 6 7]*1e6; % x data for example plot
y = x.^2; % y data for example plot
plot(x, y) % x plot the graph
set(gca, 'xticklabels', a) % set x tick labels