0

matlabはまだかなり新しいので、誰かからこのデータ分析コードを取得し、新しい関数を追加する必要がありました。

1つの関数について、1つの列の3つのエントリごとの平均を計算し、その結果を別の列に出力します。こんな感じになります

1 -1
3 -1
5 =(1+3+5)/3
7 -1
1 -1
1 =(7+1+1)/3
4 -1

私がやりたいのは、-1のセルに空白を印刷することです。私の最初の考えは、intではなく文字列値を結果に割り当てることでした。すべてをintに変換するコード行がどこかにあると思うので、これは機能しませんでした。

別の可能な解決策は、ファイルを再度開いてすべてのセルをループし、-1を空白の文字列に置き換えることですが、これを行う方法はわかりませんが、非効率的です。

最後の手段として、このxlsシートのユーザーに、処理する前にExcelで検索/置換機能を使用するようにいつでも指示できると思います。

編集:保存部分の部分的なコード:

data = [data.time, data.avg_time'];
data2 = num2cell(data);
data3 = {'t', 'avg t'};
data = [data3; data2];
xlswrite([filename, '.xls'], data);
4

1 に答える 1

1

私はあなたの質問を誤解しました (NaN を -1 に置き換えることを考えました、アムロに感謝します)。

これを使用できます:

A(A(:,2)==-1,2)=NaN

ここで、A は最初に作成した行列です。

それがあなたを助けることを願っています:)

于 2012-07-26T00:06:33.917 に答える