Arrays 在Matlab中获取一个向量中的所有值
我有两个数组,A(500 x 128个整数值)和B(500 x 64个实值)。我想将两者连接起来得到C。问题是Matlab忽略了B中的所有值,因为它们都是小值。有没有办法不被忽视地获得所有价值观Arrays 在Matlab中获取一个向量中的所有值,arrays,matlab,Arrays,Matlab,我有两个数组,A(500 x 128个整数值)和B(500 x 64个实值)。我想将两者连接起来得到C。问题是Matlab忽略了B中的所有值,因为它们都是小值。有没有办法不被忽视地获得所有价值观 谢谢。我认为这可以模拟您的问题: A = int8(randi(4,4)*10); B = rand(4,4)*10; C = [A B] C = 10 20 20 30 3 0 8 3 40 10 40 40 2 6 1 2 30 20
谢谢。我认为这可以模拟您的问题:
A = int8(randi(4,4)*10);
B = rand(4,4)*10;
C = [A B]
C =
10 20 20 30 3 0 8 3
40 10 40 40 2 6 1 2
30 20 10 30 2 1 6 6
40 20 40 30 9 9 5 5
要获得所需的结果,必须在连接数据之前向数据中添加类型:
C = [double(A) B]
C =
Columns 1 through 7:
10.00000 20.00000 20.00000 30.00000 2.92979 0.31162 7.73694
40.00000 10.00000 40.00000 40.00000 1.71392 5.82900 1.08936
30.00000 20.00000 10.00000 30.00000 1.83903 0.84160 5.75773
40.00000 20.00000 40.00000 30.00000 8.81039 9.31400 4.60636
Column 8:
3.10192
1.75853
5.75013
5.39383
因此,当您提到
A
必须显示为双矩阵时,另一个矩阵B
保持其原始类型。您可以在MATLAB中检查其他现有类型 我不认为他们忽视了,他们可能只是没有展示。。。尝试C=[A,B];C(1:10129:130)
。这很有趣:将整型值和双精度值串联在一起会生成整型值result@LuisMendo:这是matlab中的一种模式。整数和双精度运算返回一个整数。否则,整数运算会很烦人,因为像<代码> x=x+1 < /代码>这样的行将返回一个双倍的值,而不是与x相同的值。我们中的许多人认为Matlab失败了。默认值应该是(在许多其他语言中也是)将操作强制到所提供的最高精度类。如果不想这样做,请明确指定输入是什么。例如(R
syntax)x=x+1L
其中“L”表示长整数。@Daniel啊,明白了。是的,它使许多人受益sense@CarlWitthoft这就是我最初的想法。也许Matlab在这方面的行为与键入是动态的这一事实有关。正如Daniel所说,使用x
integer执行x=x+1
,并自动保留x