2017-03-15 2 views
1

こんにちは、私はこれを実行すると、私はMATLABのフィット機能がMatLabのべき乗則、非正の値のエラー

fo = fit(log2(x(:)),log2(y(:)),'power1'); 
plot(fo,'g'), hold on 

を使用して私のデータへの電力モデルに合うようにしようとしているが、私はエラーを取得

Error using fit>iFit (line 282) 
Cannot fit Power functions to data where X has nonpositive values. 

Error in fit (line 108) 
[fitobj, goodness, output, convmsg] = iFit(xdatain, ydatain, fittypeobj, ... 

Error in CurvedPowerLaw (line 20) 
fo = fit(log2(x(:)),log2(y(:)),'power1'); 

いずれかが1未満をしている場合、私のデータを見て、確認し、何もMが2列のcsvファイルである

x(count_1)=M(i,1); 
y(count_1)=M(i,2); 
count_1= count_1+1; 
if(M(i,2)<1) 
    display(M(i,1)) 
end; 

表示されません。私もコードを実行しました

if(M(i,1)<1) 

何も表示されませんでした。手作業でチェックしても何も1以下ではないようでした。

iは、解析されているファイルの行です。ファイルには、M(I、1)> 300の番号とMのいずれかを返すになります(I、2)を返します〜10値 すべてのヘルプははるかに高く評価されるだろう

344,17 
345,13 
346,13 
347,16 
340,12 

のように見えます!

おかげ

+0

「私は何ですか?これはある種のループインデックスですか? 'M(i、1)'とは何ですか?スカラー?ベクトル?あなたは 'if([0 1 0 0 1])'の振る舞いをどう思いますか?あなたの質問に[mcve]を入力してください。 'cftool'で問題を再現しようとしましたか? –

+0

私は、解析されているファイル内の行だけです。ファイルには、M(I、1)> 300のいずれかの番号を返すになりますし、M(I、2) 344,17 345,13 346,13 347,16 340,12 のように見えます〜10の値を返します – Dunny

+0

他の人が実行可能な**例を含めてください** _and_ **あなたの問題を再現します**。あなたのコメントは質問に欠けている情報なので、それを含める質問を[編集](http://stackoverflow.com/posts/42807490/edit)してください。 –

答えて

0

0の値が現れ始めたところだLOG2によってそれらをスケーリングするときに解析されたすべての値は> 0であったが。簡単な修正は、それらを解析する際に各値に1を加えることでした。

関連する問題