0

その中に 3 つのリストを持つコンテナーを作成しようとしています。各リストは、任意のサイズのリストの任意のサイズのリストです。これが私が何をするかについての私の考えです(Matlabの経験はあまりないので、おそらくこれを行うよりエレガントな方法があります)

my_data = [[] [] []];

for m = 1 : M
   list1 = [];
   list2 = [];
   list3 = [];

   for n = 1 : N
      if something holds
         list1 = [list1 ftn(n)];
         list2 = [list2 ftn2(n)];
         list3 = [list3 ftn3(n)];
      end
   end

   if something else holds
      my_data(1) = [my_data(1) list1];
      my_data(2) = [my_data(2) list2];
      my_data(3) = [my_data(3) list3];
   end
end

ただし、このコードは実際には実行されません... Matlab でこのようなことを行うにはどうすればよいですか?

4

1 に答える 1

2

これがセル配列の目的です。Matlab では、長方形以外の通常の配列を実行できませんが (ご存じのとおり)、セル配列を使用すると、標準配列を含む一般的なオブジェクトの配列を実行できます。

my_data = {{} {} {}};

for m = 1 : M
    list1 = [];
    list2 = [];
    list3 = [];
    for n = 1 : N
        if something
            list1 = [list1 something];
            list2 = [list2 something];
            list3 = [list3 something];
         end
    end

    if something
        my_data{1}{end+1} = list1;
        my_data{2}{end+1} = list2;
        my_data{3}{end+1} = list3;
    end
end
于 2012-05-16T22:35:18.847 に答える