分割字符串<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好! 我想解析一串字符。 我的字符串中有 202 個二進制位,我想將該字符串切成兩半。 我相信我可以找到字符串的長度,並可能讓它返回一定數量字符的值。 我只是不確定如何實際使用它來將其切成兩半並擁有兩列,每列 101 位。 在我得到它之後,我想將每一部分分成它自己的列。 所以我想要其中有 101 列“1”或“0”。 我只是不知道如何按字符數解析它。
謝謝你的幫助!!
回复:分割字符串一般來說,數據的組織方式與 JMP 平台將(或不會)為您提供的內容之間存在依賴性。
我不確定我是否完全理解了你的意思,但是如果你將此代碼添加到上面的 Craige 中,我想你會接近的:
dt2 = dt <<轉置(
列(:c1、:c2、:c3、:c4、:c5、:c6、:c7、:c8、:c9、:c10),
輸出表( “示例的轉置” )
);
dt2 <<圖形生成器(
顯示控制面板( 0 ),
變量(
X(:標籤),
Y(:第 1 行),
Y(:第 2 行),
Y(:第 3 行),
Y(:第 4 行),
Y(:第 5 行)
),
元素( 位置( 1 , 1 ), 條形圖( X, Y, 圖例( 12 ) ) ),
元素( 位置( 1 , 2 ), 條形圖( X, Y, 圖例( 13 ) ) ),
元素( 位置( 1 , 3 ), 條形圖( X, Y, 圖例( 15 ) ) ),
元素( 位置( 1 , 4 ), 條形圖( X, Y, 圖例( 23 ) ) ),
元素( 位置( 1 , 5 ), 條形圖( X, Y, 圖例( 27 ) ) )
);
您必須將“標籤”列中的值調整為電壓,您可以使用“重新編碼”或通過更多的 JSL 來完成此操作。 一旦你得到了你想要的東西,可能會有更直接的方式到達那裡。
回复:分割字符串謝謝你! 這很有幫助。 不幸的是,這只是我想做的事情的開始,我不知道如何休息......
所以我真的需要指出我正在查看字符串的哪一半。 我分割的所有 100 行字符串都是相同的數據,並且所有前半部分字符串都具有相同的名稱,後半部分字符串也是如此。 一旦我有了它,我需要分別繪製兩半的圖表。 當我嘗試在 JMP 中手動繪製圖表時,結果並不符合我的預期。 我是通過 Excel 完成此分析的,因為它按照我想要的方式顯示了圖表。 基本上我只需要沿 x 軸的位進入的所有新列(在本例中它們是電壓)和沿 y 軸的數據
唯一的問題是我不知道如何在 JMP 中做到這一點。 有什麼幫助嗎?
太感謝了!!
回复:分割字符串嘗試這個
// 輸入數據是一串代表位的字符 1 和 0
字符串=“11110000111000110010”;
// 將字符串從中間分成兩部分
// 該子字符串從字符 1 開始,長度為一半
第一部分 = Substr( 字符串, 1, 長度( 字符串 ) / 2 );
// 這個子字符串開始於前一個子字符串和後一個子字符串之後
// 隱式長度到達末尾
Secondhalf = Substr( 字符串, 1 + 長度( 字符串 ) / 2 );
// 每列 1 和 0 位各一位
ncols = 長度( 前半部分 );
// 開始一個新表
dt = 新表(“示例”);
// 為每個位添加名稱如“c3”的列
For( i = 1, i <= ncols, i++, // || 運算符連接兩個字符串
dt << New Column( "c" || Char( i ) ) // i 是數字,char 構成字符串
);
// 創建一個輔助函數來向 dt 中的一行添加位
adddata = Function( {bits}, // 函數的參數
{i, c}, // 局部變量
dt << 添加行( 1 ); // 函數知道使用 dt
For( i = 1, i <= 長度( 位 ), i++,
c = Column( dt, "c" || Char( i ) ); // 與上面相同
dt:c = Num( Substr( 位, i, 1 ) ); // 將位放入列中
);
);
// 每次調用 adddata 都會在 dt 中放入一行位
添加數據(上半部分);
添加數據(第二半);
添加數據(“1010101010”);
添加數據(“1111111111”);
添加數據(“0000000000”);
