間違った係数を取得、私はこのように見ているテーブルを持っている:左から「フィット」機能から
:
x Line Name
-40 -30 -20 -10 0 10 20 30 40 50
-1500 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
-1000 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN 700
1000 NaN NaN NaN NaN NaN NaN NaN NaN NaN 673
2000 NaN NaN NaN NaN NaN NaN NaN NaN 689 646
3000 NaN NaN NaN NaN NaN NaN NaN 694 662 NaN
4000 NaN NaN NaN NaN NaN NaN 696 668 636 NaN
5000 NaN NaN NaN NaN NaN 695 669 642 611 NaN
6000 NaN NaN NaN NaN 693 669 644 617 587 NaN
7000 NaN NaN NaN 691 666 643 619 593 563 NaN
8000 NaN NaN 691 665 641 619 595 569 NaN NaN
9000 NaN 691 664 639 616 595 572 547 NaN NaN
10000 691 664 639 615 592 571 550 525 NaN NaN
11000 664 638 614 591 569 549 528 503 NaN NaN
12000 638 613 590 567 546 527 507 483 NaN NaN
13000 612 589 566 545 525 506 486 NaN NaN NaN
14000 587 564 543 522 503 485 466 NaN NaN NaN
15000 562 541 520 500 482 465 446 NaN NaN NaN
16000 539 518 498 479 462 446 428 NaN NaN NaN
17000 516 496 477 459 442 427 409 NaN NaN NaN
18000 494 475 457 439 423 409 NaN NaN NaN NaN
19000 473 455 437 420 405 392 NaN NaN NaN NaN
20000 452 435 418 402 388 375 NaN NaN NaN NaN
私はこのようになりますプロットをグラフ化することができますよ青い線は「線の名前」-40〜50を表します。
ここには、コピーできる正確なコードは次のとおりです。
%% Load data
Array6 =[NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN NaN 700
NaN NaN NaN NaN NaN NaN NaN NaN NaN 673
NaN NaN NaN NaN NaN NaN NaN NaN 689 646
NaN NaN NaN NaN NaN NaN NaN 694 662 NaN
NaN NaN NaN NaN NaN NaN 696 668 636 NaN
NaN NaN NaN NaN NaN 695 669 642 611 NaN
NaN NaN NaN NaN 693 669 644 617 587 NaN
NaN NaN NaN 691 666 643 619 593 563 NaN
NaN NaN 691 665 641 619 595 569 NaN NaN
NaN 691 664 639 616 595 572 547 NaN NaN
691 664 639 615 592 571 550 525 NaN NaN
664 638 614 591 569 549 528 503 NaN NaN
638 613 590 567 546 527 507 483 NaN NaN
612 589 566 545 525 506 486 NaN NaN NaN
587 564 543 522 503 485 466 NaN NaN NaN
562 541 520 500 482 465 446 NaN NaN NaN
539 518 498 479 462 446 428 NaN NaN NaN
516 496 477 459 442 427 409 NaN NaN NaN
494 475 457 439 423 409 NaN NaN NaN NaN
473 455 437 420 405 392 NaN NaN NaN NaN
452 435 418 402 388 375 NaN NaN NaN NaN];
MakeMatrix = [-1500,-1000:1000:20000];
x = transpose([MakeMatrix;MakeMatrix;MakeMatrix;MakeMatrix;MakeMatrix;MakeMatrix;MakeMatrix;MakeMatrix;MakeMatrix;MakeMatrix]); %transpose switches rows and columns=to match array dimentions
%% Plot
hold on
A=plot(x,Array6,'b*')
grid on
grid minor
ここに大きな質問があります。私はこれを1週間は解決しようとしていて、近くにはいないと信じています。私はここで見られるように、「ライン名」-50のデータを分離し-40およびベクターへ-20たい:
x1 = transpose([-1500,-1000:1000:20000]); y1 = Array6(:,1); %LineName-40
x2 = transpose([-1500,-1000:1000:20000]); y2 = Array6(:,2); %LineName-30
x3 = transpose([-1500,-1000:1000:20000]); y3 = Array6(:,4); %LineName-10
問題は私のフィット内のNaNが動作することができないということでしたが、これは持っています下図のように解決されて:
f = fittype('poly2');
DatumLine1Fit = fit(x1,y1,f, 'Exclude', isnan(y1));
DatumLine2Fit = fit(x2,y2,f, 'Exclude', isnan(y2));
DatumLine3Fit = fit(x3,y3,f, 'Exclude', isnan(y3));
は今、私はcoeficcientsをフェッチし、行列に置く:
:DatumLine1Coeff = coeffvalues(DatumLine1Fit);
DatumLine2Coeff = coeffvalues(DatumLine2Fit);
DatumLine3Coeff = coeffvalues(DatumLine3Fit);
CoeffMatrix3x3 = transpose([DatumLine1Coeff;DatumLine2Coeff;DatumLine3Coeff]);
これは、ようCoeffMatrix3x3値を与えます
3.64801864801874e-07 3.46403596403601e-07 3.13873626373624e-07
-0.0348622377622380 -0.0333289210789212 -0.0307339285714285
1003.38694638695 962.893356643357 890.746978021977
しかし、これは問題です。これは、コードの中に示されているクーロン(1,2および4)ではなく、クーロン(10,9,7)の係数です。これはマトリックスの反対側です。 ?
クーロンの正しいCoeffMatrix3x3(1,2及び4)のようになります。
4.5e-07 3.393e-07 3.25e-07
-0.02775 -0.02815 -0.02881
700.6 744.1 805.8
助けてください。どうもありがとう!