-1

基本的にいくつかのデータ セグメントを選択し、これらのデータ セグメントに対していくつかの計算を実行するコードがあります (回帰線なので、回帰線の傾きと切片を調べます)。コードは正常に動作し、最後にすべてのループ反復の結果がコマンド ウィンドウに表示されますが、最後のループ反復結果のみが行列 (最終と呼ばれます) に格納されます。基本的に、すべての結果をマトリックスにしたいと思います。

ここにコードを添付します:

Data = csvread(inputFile);

for i=1:max(L)
try
B = [ones(length(result{i}),1) result{i}(:,1)] \ result{i}(:,2);
catch
    continue 
end


intercept = B(1);
slope  = B(2);
position  = (slope.*result{i}(end,1)+intercept)-(slope .*result{i}(1:1)+intercept);
time = result{i}(end,1)-result{i}(1:1);

final =[slope, intercept, position, time] 

end

現時点では、コマンド ウィンドウで各ループの結果を取得します。だから私はこのようなものを取得します:

final =

   4.6607  -27.7973    0.0621    0.0133


final =

   -0.0647   -0.1299   -0.0517    0.7992


final =

   -9.0676   74.6981   -0.0604    0.0067


final =

   0.3176   -3.2234    0.0698    0.2198


final =

   0.2153   -2.3666    0.0631    0.2930


final =

   -5.1864   45.6418   -0.2072    0.0400


final =

   -1.0881    9.1772   -0.0797    0.0733


final =

   -0.5416    4.3386   -0.1605    0.2964


final =

   -4.4898   39.8786   -1.2409    0.2764


final =

   -3.0985   26.3052   -0.0619    0.0200


final =

   2.0871  -24.2849    0.0208    0.0100


final =

   1.0060  -15.6203    0.0067    0.0067

これをすべてマトリックスで取得するにはどうすればよいですか?

前もって感謝します!!

4

2 に答える 2

-1

2016年お世話になりました!!

私の問題は似ていましたが、より単純でした: これが私のコードであり、どのように私を助けたかです:

tic
clear all; clc; 

 A = [1 1 1 0 0; 1 0 0 1 0; 0 1 0 0 1]
 b = [1; 1; 1];
[m,n] = size(A)

Puntos_extremos = factorial(n)/(factorial(m)*factorial(n-m));
fprintf('Puntos_extremos = %d\n\n', Puntos_extremos);

permut = [1:n];
P = nchoosek(permut,m);

xx = zeros(Puntos_extremos,n);
for i=1:Puntos_extremos
    B  = A(:,P(i,:));
 if det(B) == 0
    fprintf('x%d^T =',i); fprintf('La submatriz B es singular\n')
 else 

     x_B= B\b;
    x_N = zeros(2,1);
    x = [x_B;x_N];
    fprintf('x%d^T =',i); fprintf('%4d', x'); fprintf('\n');

 end


% Here i got your help. Thanks bot of you!!
 xx(i,:) = x;
end

VectFAct = xx

toc
于 2016-04-13T21:39:26.150 に答える