这是一个很难回答的问题。我是Matlab新手,看过以下声明,但我看不出它有什么作用。什么doe x = x(:)做?x = x(:)是什么意思在matlab中,其中x是一个向量?
11
A
回答
13
1
x(:)
重塑你的矩阵。
由此,如果基质是
1 2 3
5 6 7
8 9 10
主叫x=x(:)
套x
到
1
5
8
2
6
9
3
7
10
2
X(:)变换数组的列向量。
+3
,它实际上并不难[google](https://www.google.com/search?q=matlab+colon+operator+vector)。 – voidengine 2012-01-15 02:39:18
2
此语法通常用于确保x
是一个列向量:
x = x(:)
同样,这条线可确保x
是行向量
x = x(:)'
2
正如其他已经说过,x(:)专门将x转换为向量,列向量。重点在于,它使您的代码对于提供行向量的用户在我的事故中健壮。例如,
x = 1:5;
创造了一个行向量。一些操作将需要列向量。由于x(:)对已经是列向量的向量没有任何作用,所以这是一种编写健壮,稳定的代码的方式。
当然,如果x是一个3x4矩阵,它仍然会将x转换为长度为12的列向量,所以最好的代码需要测试类似的东西,如果这是一个问题。
1
如果x是一个矩阵,如下所示:3×3矩阵,
x=[1,2,3;4,5,6;7,8,9];
x=x(:);
语句x = X(:)列出了矩阵的列向量。 输出将是
1
2
3
4
5
6
7
8
9
这同样是当x是一个行向量时得到的结果。
所以一般来说,x(:)列出x的元素作为列向量。
1
该运算符告诉matlab尝试转换数据类型。
例如:
这两种数据类型设置为不同类型:
>> foo = uint8(0);
>> bar = double(0);
检查数据类型与 “卫生组织” 命令:
>> whos foo bar
Name Size Bytes Class Attributes
bar 1x1 8 double
foo 1x1 1 uint8
分配UINT8到双用(:)运营商:
>> bar(:) = foo;
和它仍然是一个双
>> whos foo bar
Name Size Bytes Class Attributes
bar 1x1 8 double
foo 1x1 1 uint8
分配双用unit8没有(:)操作:
>> bar = foo;
,并变成一个UINT8数据类型:
>> whos foo bar
Name Size Bytes Class Attributes
bar 1x1 8 uint8
foo 1x1 1 uint8
相关问题
- 1. “if(x){...}”是什么意思?其中x是C++中的整数?
- 2. 在MATLAB中,@(x)myfun(x,F_index)是什么意思?
- 3. y == x是什么意思在MATLAB?
- 4. “declare + x”是什么意思vs“declare -x”?
- 5. (x:_)和[x:_]是什么意思?
- 6. (x << 13)^ x是什么意思?
- 7. 'char x []'是什么意思?
- 8. 什么意思是$ x(“// *”);
- 9. 在numpy中X [:,:,:,i]是什么意思?
- 10. 'x = x + 2'是什么意思?在这段代码中?
- 11. CSS中的[x * =“y”]和[x^=“y”]是什么意思?
- 12. Haskell中的x <-x是什么意思?
- 13. 什么是“hrtimer:interrupt x ns”是什么意思?在dmesg中看到
- 14. F# - 什么与...匹配:? X as x是什么意思?
- 15. int x; arr [100]是什么意思?
- 16. (char *)x或(void *)z是什么意思?
- 17. “isset($ x)?$ y:$ z”是什么意思?
- 18. x%2 == 0是什么意思?
- 19. “str”+ x +“str”是什么意思?
- 20. 什么意思* p ++ = x
- 21. A = [x; y']在Matlab中的意思?
- 22. 什么是OS X会话类型,它们是什么意思?
- 23. 在C/C++编程中,%0x%x是什么意思?
- 24. 领先的`\ x`在Python字符串中是什么意思`\ xaa`
- 25. 在Linux shell脚本中,'x = $ {1:3:1}'是什么意思?
- 26. 什么是var x = x || {};
- 27. 是什么X ++和++ X
- 28. Python中的语句x ='是什么意思?
- 29. 命名空间中的“X”后缀是什么意思?
- 30. Ruby中有“x ... n”的意思是什么?
待办事项你知道它是否做了一次重塑(所以将复制写入)或者强制复制(即使x已经是一列)? – robince 2012-01-17 09:29:17
@robince:好问题。我想认为'x(:)'完全等同于'reshape(x,[],1)'。但我不确定(我不确定这是否记录在任何地方)。我想可以试着通过分析来弄明白。 – 2012-01-17 10:11:56
是的,我检查,似乎有正常的复制写semantis(2011b)。我不知道为什么我有这个想法强制要求复制 - 也许过去有一段时间。 – robince 2012-01-18 10:39:07