分割字符串<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”);
