JSL提示:使用矩陣而不是列表該列表是在JSL中組織數據的基本構建工具之一。列表的強大之處在於它們可以包含任何類型的項目(數字,字符,其他列表......),並且它們可以根據需要增長和縮小。但是,如果您只需要一個固定的數字列表,您可以從一維矩陣中獲得更好的性能。
考慮這兩個產生奇數數組的樣本。
//列出奇數
n = 1000;
y = {};
for(i = 1,i <= n,i ++,
ÿ = 2 * i - 1;
);
ÿ;
//製作一個奇數矩陣
n = 1000;
y = J(1,n); //創建一個1 xn矩陣,所有值都設置為1
for(i = 1,i <= n,i ++,
ÿ = 2 * i - 1;
);
對於幾百個項目,沒有太大的區別。但是當n超過1000(或者如果上面的代碼處於循環中)時,你會開始注意到速度的差異。對於列表,動態增長和一般靈活性存在一定的開銷。
請注意,J函數可用於創建給定大小的新矩陣。Ĵ M,N 是的名稱單位矩陣在線性代數中。
還要注意,一維矩陣只能用一個下標索引。也就是說,我們可以使用y 而不是y [1] 。這使得將矩陣作為列表處理變得更容易,並且在上面的循環中,這兩種情況都是相同的。
問題直到下一次:如何使代碼更快?
Xan Gregg寫道:你好Uday,你應該嘗試在...發布 Xan Gregg 中寫道:
你好Uday,
你應該嘗試在論壇上發帖 community.jmp.com 在那裡您可以提供更詳細的描述並從任何人那裡獲得答案。
從你在這裡的描述,我認為 LOC() 功能將有用於調查。它將為您提供滿足特定條件的行的位置,以便後續操作。
要將列添加到Graph Builder中,請將它們放入一個表中,例如,如表() 。
Uday寫道:你好Mr.Gregg,所以我想說我有這個matr ...烏代中寫道:
你好Mr.Gregg,
所以假設我有5列和n行的矩陣。現在我想用條件修改這些列。對於Eg:我想在矩陣的每個小於5的列中使所有值為NULL。
我如何在圖形構建器中使用這些列。
問候
烏代
JSL提示:用矩陣上的函數替換循環 - JMP B ... JSL技巧:用矩陣上的函數替換循環 - JMP博客中寫道:
[...]我以前的JSL提示,我們看到訪問矩陣項比列出項更快。如果你不[...]它會更快
邁克爾寫道:我認為y =指數(1,1000,2)會......邁克爾中寫道:
雖然我還沒有驗證,但我認為y = index(1,1000,2)會更快。
Xan Gregg寫道:你是對的。我以為自己很聰明...... Xan Gregg 中寫道:
你是對的。我認為我很聰明地為未來的提示保存這些改進,但也許我應該找到一個不能被破壞的例子。
Ryan Kelly寫道:你如何在JMP中運行它?瑞安凱利中寫道:
你如何在JMP中運行它?
Xan Gregg寫道:JSL是JMP腳本語言。它的... Xan Gregg 中寫道:
JSL是JMP腳本語言。JMP的正常交互使用不需要它,但對於自定義任務可能很有用。文件>新建>腳本將為您提供一個空腳本窗口,您可以在其中放置上述代碼段之類的腳本,並使用編輯>運行腳本(Ctrl-R)運行它們。輸出(如果有)進入“日誌”窗口。
Chris Dorger寫道:如何從矩陣中列出一個列表......克里斯多爾格中寫道:
如何從矩陣或數據表列中創建列表?
Xan Gregg寫道:As List()函數將轉換為ma ... Xan Gregg 中寫道:
As List()函數將矩陣轉換為列表列表,每行一個。如果需要一個長列表,可以使用Shape()函數首先將所有矩陣元素放入一行。