2

文字列(例:「STA」)があり、1からXまでの数字を使用してスティングを連結するセル配列を作成したいと思います。

私はコードに以下のフォアループのようなことをさせたいです:

for i = 1:Num
    a = [{a}  {strcat('STA',num2str(i))}]
end

最終結果を{<1xNumセル>}の形式にしたい

a = 'STA1' 'STA2' 'STA3' ...

(これをColumnFormat配列のuitableに設定したい)

ColumnFormat = {{a},...                 % 1
             'numeric',...              % 2
             'numeric'};                % 3
4

3 に答える 3

3

STA1で始まるかどうかはわかりませんが、これでSTAで始まるリストが表示されます(最初のエントリを削除できると思います)。

N = 5;
[X{1:N+1}] = deal('STA');
a = genvarname(X);
a = a(2:end);
于 2013-03-08T21:01:11.693 に答える
1

これを試して:

N = 10;
a = cell(1,N);
for i = 1:N
    a(i) = {['STA',num2str(i)]};
end
于 2013-03-08T17:47:53.433 に答える
1

これは、NUM2STR(数値を文字列に変換)、CELLSTR(文字列をセル配列に変換)、STRTRIM(余分なスペースを削除)、およびSTRCAT(別の文字列と組み合わせる)関数の組み合わせで実行できます。

(:)数値ベクトルが列であることを確認する必要があります。

x = 1:Num;
a = strcat( 'STA', strtrim( cellstr( num2str(x(:)) ) ) );

より多くの次元を持つ行列の代替として、私はこのヘルパー関数を持っています:

function c = num2cellstr(xx, varargin)
%Converts matrix of numeric data to cell array of strings

c = cellfun(@(x) num2str(x,varargin{:}), num2cell(xx), 'UniformOutput', false);
于 2013-03-08T21:44:42.403 に答える