需要将矩阵或者表中重复的行去掉,该如何做?
mathcad吧
全部回复
仅看楼主
level 7
yuduotian
楼主
如题,表格在链接中。
http://yunpan.cn/cwexW4nRekSer
访问密码 3983
2015年06月05日 06点06分
1
level 12
朱老剑客
集合论在MC吧老贴里提到了不少,在Inside Mathcad里有现成的模板,此题*。
若无人回答,我过了12点给答案。
2015年06月05日 07点06分
2
level 7
yuduotian
楼主
再增加一个内容
假设有一组数x=1,2...10,x必须是正整数;
有个倍率i的范围是1~3.5(随便一个范围,精度可以在0.01)
求另外一组数y=x*i,y必须是正整数,并且y的最大整数不能超过x*i;
要求x,y对应输出,并且去掉结果中重复的数据,例如x=1的时候,y在i的范围内,会有很多数据是相同的,例如i=1.01~1.99时,y都等于2,相同的结果不需要重复出现。
2015年06月05日 08点06分
3
level 12
朱老剑客
yi=xi×floor(rnd(2.5)+1),剩下的就是上面的答案了。
2015年06月05日 08点06分
4
level 12
朱老剑客
(rnd(250)/100)+1
2015年06月05日 08点06分
5
LNSZDZG
2015年06月05日 11点06分
level 7
yuduotian
楼主
我考虑的是用i的边界条件去重,略过y相同的i值。
2015年06月05日 13点06分
9
level 12
朱老剑客
没看明白。你到底要做什么呢?
2015年06月05日 13点06分
10
level 12
朱老剑客
你掰开了揉碎了说吧,比如你举一个简单但说明问题的例子,一开始是什么样,你想做到什么样,想尽办法让别人看明白你在什么和你想干什么,这是交流效率。
2015年06月05日 13点06分
11
yuduotian
我发的那个程序,写了3次,每次只是计算了一个x值对应的y,i的变化范围是1.2~3.5
2015年06月05日 13点06分
yuduotian
z1就是x,z1=1时,求出的y=2,3;z1=2时,求出y=3,4,5,6,7;依次类推; 我想要在一个循环中求出z1=1,2...,时对应的y值,并且将z1和y对应的输出在同一个矩阵中。
2015年06月05日 13点06分
朱老剑客
@yuduotian
从你的程序里只看到你是怎么干的,但看不出你要干什么。
2015年06月05日 13点06分
level 12
朱老剑客
如果你自己都表达不明白,确实不能期望别人能够明白你要表达的是什么。
2015年06月05日 13点06分
12
yuduotian
要求的数假设叫z2,z2=z1*i,但必须满足i在1.2~3.5的范围内,同时z2是整数。 z1=1时,z2可以得2,3,对应的z2=z1*i, z1=1,i=2; z2=z1*i ,z1=1,i=3
2015年06月05日 14点06分
yuduotian
关系式就是z2=z1*i;z1=3,i=2,那么z2=6,公式就是简单的乘法。但此处i是个范围,要求出这个范围内的z2的全部可能的数值。
2015年06月05日 14点06分
level 12
朱老剑客
嗯,z10对应的多少?
2015年06月05日 14点06分
13
level 12
朱老剑客
z1和y之间有什么对应关系么?
你说的这个,最后的结果应该一个2列矩阵,第1列是z1的序号,第2列是y的嵌套数组。
2015年06月05日 14点06分
14
yuduotian
z1和y跟我发的程序无关,我发的程序只是说我算出来的一个简单的结果。
2015年06月05日 14点06分
level 12
朱老剑客
越说越不明白了,怎么又出了z2了?
2015年06月05日 14点06分
15
level 12
朱老剑客
用5000字把你要干什么说清楚,起因经过结果,时间地点人物,怎么回事儿,画图说也成,拍视频说也成,总之我没看明白你要干什么。
2015年06月05日 14点06分
16
level 7
yuduotian
楼主
关系式就是z2=z1*i;
例如:z1=3,i=2,那么z2=6,公式就是简单的乘法。
但此处i是个范围值,例如i=1.2~3.5,要求出这个范围(i=1.2~3.5)内的z2的全部可能的整数值。
例如z1=1时,z2就是2和3两个值。
例如z1=2时,z2就是3,4,5,6,7五个值。
。。。。。。
对于不同的z1,在i的范围内,可以求出相应的z2的全部整数值。
例如for z1=1,2...15
求出所有的z2的值,并输出成一个2列的矩阵
2015年06月05日 14点06分
17
level 12
朱老剑客
谁看明白了谁来说吧。貌似
@yuduotian
想表达的是i是一个向量,i向量的元素数量随着x的增加而增加,不知道是不是这个意思。我相信会有人知道他要做什么的。
2015年06月05日 14点06分
18
randvac
除了一楼说的表格数据去掉重复项,后面的我也没看懂.....楼主说最后要的结果是个2列矩阵,第1列是什么第2列是什么,我没整明白.
2015年06月05日 14点06分
yuduotian
i就相当于一个放大系数,把z1放大i倍;i在一个范围内变化,但求出的z1*i的整数是有限的。z1也必须是整数,而且这个数不会很大,一般不会超过100;i的有效位数不需要很多,我的应用范围i的精度到0.001已经足够了,0.01就可以满意一般使用要求。
2015年06月05日 14点06分
level 12
朱老剑客
嗯,随着z1值的增加,z2的值也在增加,这就要看i的有效数字位数了:
若 i=1.2000000000000000001
当 z1=10^15时,就会有一个整数值出现,这无疑是要包含在z2向量里的。
也就是说,如果i的小数位数是无穷大的,那么很有可能z2向量中会有无穷多个元素。
2015年06月05日 14点06分
19
yuduotian
我的应用范围不需要i的精度过高,0.001已经完全可以满足要求了,z1正常是不会超过100的。
2015年06月05日 14点06分
level 12
朱老剑客
如果按照0.01的精确度来容纳i=1.2~3.5之间的元素,i也就会有(3.5-1.2)×10=230个元素,假设这些元素都可以在相乘之后得到各不相同的整数,z2向量也会是很大的,100项?不清楚了。
2015年06月05日 14点06分
20
yuduotian
z2的数量是很多的,因此我想在计算中直接跳过重复项,而不是计算出重复项再删除。
2015年06月05日 14点06分
yuduotian
用简单的方法,给出i的步长,每个步长的i所对应的z2都求出来,这样可以得到包括所有z2重复项的矩阵,但是这样的矩阵过于庞大。
2015年06月05日 14点06分
朱老剑客
@yuduotian
不大,过程量不超过500000各元素都可以忽略的。
2015年06月05日 14点06分
level 12
朱老剑客
还有一个问题,你说:
z1=1时,z2就是2和3两个值。
z1=1时,最小值是1.2,最大值是3.5,你的意思是不是我对这些值round为整数之后,去掉所有小于1.2的值和所有大于3.5的值?round(1.2)=1,去掉;round(3.5)=4,去掉。是这样的吗?
2015年06月05日 14点06分
21
yuduotian
是的
2015年06月05日 14点06分
level 12
朱老剑客
精度到底是0.01,还是0.001,在3楼你说是0.01,在19楼你又说是0.001,到底是多少,给个准数。
2015年06月05日 14点06分
22
yuduotian
0.01即可
2015年06月05日 14点06分
yuduotian
目前的计算,0.01和0.001对结果无影响
2015年06月05日 14点06分
level 12
朱老剑客
@yuduotian
,你错了,0.01和0.001对结果影响很大,当z1非常大的时候,就能够看出来了。除非你界定一个z1的范围,真的像你说那样1,2,3,4,5,6,7,8,9,10即可吗?
2015年06月05日 14点06分
23
yuduotian
我说了,z1不会很大,正常不会超过100,所以0.01和0.001没有影响。
2015年06月05日 14点06分
1
2
尾页