2016-06-14 3 views
1

セルを持ついくつかの解は見つけましたが、数値配列はありません。
問題はシンプルですが、私は1つ持っていますArray a=(0,1,2,3,4,5,6,7)この ""のように "blankspace"で他のすべての値を変更したいので、配列は同じ長さのままですが他の値は1つだけです。このようなことをしようとするとが得られますa=(0,2,4,6)長さは同じではありません。
私はa(2:2:end)=blanks(1);を試してみるとほぼ完璧です:)しかし正確にはわかりません。a=(0,'32',2,'32',4,'32'...)実際には32は実際には正しく動作することを意味する「スペース」(ASCII)を意味しています。私はそれを使用して私のTickLabelsを設定しようとしますが、ASCIIのような32のように解釈しません。Matlabの値をブランクに置き換える

+0

正確にはあなたの目的は何ですか?つまり、なぜXTickラベルを設定する場合にセル配列を使用できないのですか? –

答えて

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 

enter image description here

はダニを取得するには科学的表記のないラベルには、適切なフォーマットの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 
+0

ええ、私は今それを得ました、私はTickLabelを読むとき、それはCellですが、TicksのthemselvsはDouble Arraysです。私は今それを見ました。サポートしていただきありがとうございます。小さな質問私はティックを読む: a = ax1.XTick; %a [100000,200000,300000,400000、...、1000000] a = num2cell(a); a(2:2:end)= {[]}; ax1.XTickLabel = a; それから、私はプロットがほぼ1 000 000は1e + 06として表示されますが、私はそれを得ることはありません、私は細胞が数字の文字列ではないと思っています:)。 – GDD

+0

私はこのようにしましたax1.TickLabelInterpreter = 'none'; でも、まだ1e + 06です。 – GDD

+0

@GDD 'a = cellfun(@ num2str、a、 'Uniformoutput'、false);'(編集を参照) –

関連する問題