<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />以下のスクリプトを実行するためのより良い方法があるかどうかを知りたいです。 現在、私は1つの関数がユーザーからの入力を受け取り、それに続く1つまたは複数のグラフのすべての可能なY値のリストを作成しています。 その後、次の関数が呼び出されてグラフが作成されます。 6つのifステートメントに独自のグラフビルダーを含めるのではなく、1つまたは2つのグラフビルダーを使用することで必要なコード量を劇的に減らすことができる方法があるかどうかを知りたいです。
HALTbuildGraph = 関数 ({} 、 { テンピコル = 「」 、バイブコール = 「」 } 、
もし ( N個のアイテム ( LogCheckBox << 選択を取得 ()) == 1 、 //ログファイルがインポートされた場合
にとって ( 私 = 1 、私 <= n Col () 、私 ++、
もし ( 含む ( チャー ( 列名 ( 私 )) 、 「温度」 ) & 含む ( チャー ( 列名 ( 私 )) 、 「設定値」 ) 、
テンピコル = チャー ( 列名 ( 私 )) 、
/ *そうでなければ* / 含む ( チャー ( 列名 ( 私 )) 、 「バイブ」 ) & 含む ( チャー ( 列名 ( 私 )) 、 「設定値」 ) 、
バイブコール = チャー ( 列名 ( 私 )) ;
) ;
) ;
もし ( テンピコル == 「」 、 //温度設定値列が見つからなかった場合
印刷する ( "エラー111a:温度設定値が見つかりません" ) ;
スロー ()
) ;
もし ( バイブコール == 「」 、 //振動設定値列が見つからなかった場合
印刷する ( "エラー111b:振動設定値が見つかりません" ) ;
スロー () ;
) ;
もし ( N個のアイテム ( グラフリスト ) == 1 、
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 1 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 1 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) 、
/ *そうでなければ* / N個のアイテム ( グラフリスト ) == 2 、
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 1 ]) ) 、
Y ( カラム ( グラフリスト [ 2 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 4 ) 、
ライン ( バツ 、 Y 、伝説 ( 30 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 1 ] || 「&」 || グラフリスト [ 2 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) 、
/ *そうでなければ* / N個のアイテム ( グラフリスト ) == 3 、
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 1 ]) ) 、
Y ( カラム ( グラフリスト [ 2 ]) ) 、
Y ( カラム ( グラフリスト [ 3 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 4 ) 、
ライン ( バツ 、 Y 、伝説 ( 30 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 5 ) 、
ライン ( バツ 、 Y 、伝説 ( 31 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 1 ] || 「」 || グラフリスト [ 2 ] || 「、&」 || グラフリスト [ 3 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) 、
/ *そうでなければ* / N個のアイテム ( グラフリスト ) == 4 、
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 1 ]) ) 、
Y ( カラム ( グラフリスト [ 2 ]) ) 、
Y ( カラム ( グラフリスト [ 3 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 4 ) 、
ライン ( バツ 、 Y 、伝説 ( 30 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 5 ) 、
ライン ( バツ 、 Y 、伝説 ( 31 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 1 ] || 「」 || グラフリスト [ 2 ] || 「、&」 || グラフリスト [ 3 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) ;
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 4 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 4 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) 、
/ *そうでなければ* / N個のアイテム ( グラフリスト ) == 5 、
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 1 ]) ) 、
Y ( カラム ( グラフリスト [ 2 ]) ) 、
Y ( カラム ( グラフリスト [ 3 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 4 ) 、
ライン ( バツ 、 Y 、伝説 ( 30 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 5 ) 、
ライン ( バツ 、 Y 、伝説 ( 31 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 1 ] || 「」 || グラフリスト [ 2 ] || 「、&」 || グラフリスト [ 3 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) ;
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 4 ]) ) 、
Y ( カラム ( グラフリスト [ 5 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 4 ) 、
ライン ( バツ 、 Y 、伝説 ( 30 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 4 ] || 「&」 || グラフリスト [ 5 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) 、
/ *そうでなければ* / N個のアイテム ( グラフリスト ) == 6 、
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 1 ]) ) 、
Y ( カラム ( グラフリスト [ 2 ]) ) 、
Y ( カラム ( グラフリスト [ 3 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 4 ) 、
ライン ( バツ 、 Y 、伝説 ( 30 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 5 ) 、
ライン ( バツ 、 Y 、伝説 ( 31 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 1 ] || 「」 || グラフリスト [ 2 ] || 「、&」 || グラフリスト [ 3 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) ;
GB = グラフビルダー (
変数 (
バツ ( : テスト時間 ) 、
Y ( カラム ( テンピコル ) ) 、
Y ( カラム ( バイブコール ) ) 、
Y ( カラム ( グラフリスト [ 4 ]) ) 、
Y ( カラム ( グラフリスト [ 5 ]) ) 、
Y ( カラム ( グラフリスト [ 6 ]) )
) 、
要素 (
ポジション ( 1 、 1 ) 、
ライン ( バツ 、 Y 、伝説 ( 27年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 2 ) 、
ライン ( バツ 、 Y 、伝説 ( 28年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 3 ) 、
ライン ( バツ 、 Y 、伝説 ( 29年 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 4 ) 、
ライン ( バツ 、 Y 、伝説 ( 30 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
要素 (
ポジション ( 1 、 5 ) 、
ライン ( バツ 、 Y 、伝説 ( 31 ) 、行の順序 ( 0 ) 、要約統計 ( "平均" ) )
) 、
SendToReport (
ディスパッチ ({} 、 「グラフタイトル」 、テキスト編集ボックス 、 { テキストを設定 ( グラフリスト [ 4 ] || 「&」 || グラフリスト [ 5 ])}) ;
) ;
) ;
gb_rpt = 報告書 ( GB ) ;
gb_rpt [ LegendBox ( 1 )] << 削除する ;
gb_rpt [ PictureBox ( 1 )] << ジャーナルウィンドウ ;
GB << ウィンドウを閉じる ( 保存しない ) ;
) 、
それは続きますが、私はあなたが写真を撮ると思います...
基本的に、私はグラフビルダーのVariablesセクションでif文を使ってみましたが、JMPはそれを全く好まないようです。 コードを短くして読みやすくする方法を探しています。
その例とそれらのコマンドを共有してくれてありがとう。 これが上記のコードが今どうなっているかです。 私はそれがあるべきであるよりずっと良いと言うでしょう。
HALTbuildGraph = 関数 ({} 、 { テンピコル = 「」 、バイブコール = 「」 } 、 // 11
もし ( N個のアイテム ( LogCheckBox << 選択を取得 ()) == 1 、 //ログファイルがインポートされた場合
にとって ( 私 = 1 、私 <= n Col () 、私 ++、
もし ( 含む ( チャー ( 列名 ( 私 )) 、 「温度」 ) & 含む ( チャー ( 列名 ( 私 )) 、 「設定値」 ) 、
テンピコル = チャー ( 列名 ( 私 )) 、
/ *そうでなければ* / 含む ( チャー ( 列名 ( 私 )) 、 「バイブ」 ) & 含む ( チャー ( 列名 ( 私 )) 、 「設定値」 ) 、
バイブコール = チャー ( 列名 ( 私 )) ;
) ;
) ;
もし ( テンピコル == 「」 、 //温度設定値列が見つからなかった場合
印刷する ( "エラー111a:温度設定値が見つかりません" ) ;
スロー ()
) ;
もし ( バイブコール == 「」 、 //振動設定値列が見つからなかった場合
印刷する ( "エラー111b:振動設定値が見つかりません" ) ;
スロー () ;
) ;
gb_expr = evalinsert ( "\ [
gb =グラフビルダー(
変数(
X(:テスト時間)
Y(列(tempcol))、
Y(列(vibcol))、
] \ " ) ;
にとって ( 私 = 1 、私 <= N個のアイテム ( グラフリスト ) & 私 <= 3 、私 ++、
もし ( 私 == N個のアイテム ( グラフリスト ) | 私 == 3 、
gb_expr = gb_expr || evalinsert ( "\ [
Y(グラフリスト[^ i ^])
)
] \ " ) 、
/ *その他* /
gb_expr = gb_expr || evalinsert ( "\ [
Y(グラフリスト[^ i ^])、
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
要素(
位置(1、1)、
行(X、Y、凡例(27)、行の順序(0)、要約統計( "平均"))
)
要素(
位置(1,2)、
行(X、Y、凡例(28)、行の順序(0)、要約統計( "平均"))
)
] \ " ) ;
にとって ( 私 = 1 、私 <= N個のアイテム ( グラフリスト ) & 私 <= 3 、私 ++、
gb_expr = gb_expr || evalinsert ( "\ [
要素(
位置(1、2 + ^ i ^)、
行(X、Y、凡例(28 + ^ i ^)、行の順序(0)、要約統計( "平均"))
)
] \ " ) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
SendToReport(
ディスパッチ({}、"グラフのタイトル"、テキスト編集ボックス、{テキストの設定(graphlist [1]
] \ " ) ;
もし ( N個のアイテム ( グラフリスト ) == 1 、
gb_expr = gb_expr || evalinsert ( "\ [)});
;
] \ " ) ;
) ;
にとって ( 私 = 2 、私 <= N個のアイテム ( グラフリスト ) & 私 <= 3 、私 ++、
もし ( 私 == N個のアイテム ( グラフリスト ) | 私 == 3 、
gb_expr = gb_expr || evalinsert ( "\ [||"、& "|| graphlist [^ i ^])});
;
] \ " ) 、
/ *その他* /
gb_expr = gb_expr || evalinsert ( "\ [||"、"|| graphlist [^ i ^]
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
;
gb_rpt = report(gb);
gb_rpt [LegendBox(1)] << delete;
gb_rpt [PictureBox(1)] << Journal Window;
gb <<ウインドウを閉じる(保存しない)
] \ " ) ;
評価する ( 解析する ( gb_expr )) ;
もし ( N個のアイテム ( グラフリスト ) > 3 、
gb_expr = evalinsert ( "\ [
gb =グラフビルダー(
変数(
X(:テスト時間)
Y(列(tempcol))、
Y(列(vibcol))、
] \ " ) ;
にとって ( 私 = 4 、私 <= N個のアイテム ( グラフリスト ) 、私 ++、
もし ( 私 == N個のアイテム ( グラフリスト ) 、
gb_expr = gb_expr || evalinsert ( "\ [
Y(グラフリスト[^ i ^])
)
] \ " ) 、
/ *その他* /
gb_expr = gb_expr || evalinsert ( "\ [
Y(グラフリスト[^ i ^])、
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
要素(
位置(1、1)、
行(X、Y、凡例(27)、行の順序(0)、要約統計( "平均"))
)
要素(
位置(1,2)、
行(X、Y、凡例(28)、行の順序(0)、要約統計( "平均"))
)
] \ " ) ;
にとって ( 私 = 4 、私 <= N個のアイテム ( グラフリスト ) 、私 ++、
gb_expr = gb_expr || evalinsert ( "\ [
要素(
位置(1、2 + ^ i ^ -3)
行(X、Y、凡例(28 + ^ i ^ -3)、行の順序(0)、要約統計( "平均"))
)
] \ " ) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
SendToReport(
ディスパッチ({}、"グラフのタイトル"、テキスト編集ボックス、{テキストの設定(graphlist [4]
] \ " ) ;
もし ( N個のアイテム ( グラフリスト ) == 4 、
gb_expr = gb_expr || evalinsert ( "\ [)});
;
] \ " ) ;
) ;
にとって ( 私 = 5 、私 <= N個のアイテム ( グラフリスト ) 、私 ++、
もし ( 私 == N個のアイテム ( グラフリスト ) 、
gb_expr = gb_expr || evalinsert ( "\ [||"、& "|| graphlist [^ i ^])});
;
] \ " ) 、
/ *その他* /
gb_expr = gb_expr || evalinsert ( "\ [||"、"|| graphlist [^ i ^]
] \ " ) ;
) ;
) ;
gb_expr = gb_expr || evalinsert ( "\ [
;
gb_rpt = report(gb);
gb_rpt [LegendBox(1)] << delete;
gb_rpt [PictureBox(1)] << Journal Window;
gb <<ウインドウを閉じる(保存しない)
] \ " ) ;
評価する ( 解析する ( gb_expr )) ;
) 、