2011-08-31 39 views
14

私は後でそれを公開するためにMATLABコードを書いています。パブリッシュすると、組み込みのMATLAB publishツールを使用して、プログラマーがMATLABコードから生成された完全なレポートを作成できるようになります。このコードの結果の前に、セクションごとにこのレポートにコードを含めるオプションがあります。このコードのいくつかをレポートに含めるようにMATLABに指示する方法はありますか?かなりのマークアップコードタグがあることは知っていますが、このトピックについては何も見つかりませんでした。Matlabに公開する際にコードを選択的に含める方法はありますか?

編集:だけ明確にする、私は公表するすべて結果をしたいが、コードの唯一一部。したがって、単にこのコードを削除することはオプションではありません。

乾杯! =)

答えて

2

スクリプトで人に見せたくないコードを非表示にします。例えば、publishドキュメントページから「sine_wave」の例では、私は、単一の行を追加しました:

junk 

はここでジャンクの内容です:

figure() 
plot(0:0.01:6,sin(0:0.01:6)) 

今、あなたの主なスクリプトを実行し、そして公表します結果にはリスティングに「迷惑メール」が含まれていますが、迷惑メールの内容は含まれていません。その例に含まれている虚偽のものではなく、正弦波の素敵なバージョンが得られます。

+0

これは可能な限り最速のハックだと思います。 – Phonon

+0

悲しいことに、それが表示されます。 : – John

+0

なぜ悲しいのですか?Indirectionは多くの状況でプログラマーのツールになります –

1

私がこれを行うために知っている唯一の方法は、出力に表示したくないコードを削除することです。出力ではなくコードを表示するだけの場合は、の呼び出しでevalCodeプロパティをfalseに設定することができます。

コードを評価し、出力を公開したい場合は、少し複雑です。公開したくないスクリプトの部分を手動で実行し、気になるコードを公開することができます(独自の.mファイルに入れて)。省略されたコードフラグメントを手動で実行したときに、それらの変数がワークスペースに追加されたため、公開されたコードが省略されたコードで初期化された変数に依存するかどうかは関係ありません。

編集:

あなたは、コードの一部を公開に興味を持っていることを述べるためにあなたの質問を明らかにしましたが、出力のすべてが、私はあなたの最善の策は、単に変更することであると思うだろうので、 fprintfdispなど、出力に表示したい機能呼び出しを含むように、 "一時的な"スクリプト(公開したいコードの部分集合を含む)。

私は言ったように、「注釈」やpublishコマンドを使用して、細かい細かい粒度を得る方法は認識していません。

希望に役立ちます!

0

私はその入力をチェックするために

myFunction('PUBLISHING'); 

機能コードの最初の行に公開オプションでMATLAB表現を変更するので、私は通常、公開するときにのみ、特定の物事を行うには私のコードを変更することができます数字などを表示するしかし、通常の動作中ではありません。またはその逆:)

function [outputs] = myFunction(input1, input2) 

    isPublishing = (nargin == 1) && strcmp(input1, 'PUBLISHING'); 

    if (nargin == 0) || isPublishing 

    % Set up default values 
    input1 = 'Hello'; 
    input2 = 'World'; 

    end 

    ... 

end 
0

は、ここに1つの回避策を説明しますサンプルあなたが保存することができますスクリプトとpublishです。あなたは最初の登場からすべて評価されたコードを停止する、falseInclude code optionを設定する必要がありますが、あなたはまだsyntax highlighted code sampleを使用してコードを表示することができます。

enter image description here

%% Controlling what code gets published 
% Here's how you can do it... 

%% Showing results without code 
% If you set the 
% <https://www.mathworks.com/help/matlab/matlab_prog/specifying-output-preferences-for-publishing.html#bthbe__-3 
% *Include code* option> to |false|, you will see the plot but not the code 
% that made it: 

surf(peaks); % I'm John Cena! 

%% But what if you want some of the code to show? 
% The *Include code* setting affects the whole document, so all evaluated 
% code will be hidden. If you want some code to show, you can use 
% <https://www.mathworks.com/help/matlab/matlab_prog/marking-up-matlab-comments-for-publishing.html#bs_uwzr 
% syntax highlighted sample code>. This does mean you have to have duplicate 
% sections of code (one is evaluated, one is displayed), but it's the best 
% option thus far: 

%% 
% 
% surf(peaks); 
% 

surf(peaks); % You can't see me, but you see the above! 

そしてここでは、公開された出力です

関連する問題