【发布时间】:2013-08-27 01:01:03
【问题描述】:
我正在将 matlab 代码重写为 C#。我对matlab编程一窍不通,也看不懂这部分:
d9=[d9 d8];
d10=d9(:,2:10);
d5=[d6 d10 d7];
变量 d6、d7、d8 和 d9 是二维数组。
完整的 Matlab 代码在这里:link to codeforge.com
【问题讨论】:
标签: c# arrays matlab matrix translation
我正在将 matlab 代码重写为 C#。我对matlab编程一窍不通,也看不懂这部分:
d9=[d9 d8];
d10=d9(:,2:10);
d5=[d6 d10 d7];
变量 d6、d7、d8 和 d9 是二维数组。
完整的 Matlab 代码在这里:link to codeforge.com
【问题讨论】:
标签: c# arrays matlab matrix translation
“我对matlab编程一窍不通,这部分看不懂”
a) d9=[d9 d8];
将连接矩阵d9 和d8 并将结果存储在d9 中。另一种方法是它只是将矩阵d8 附加到d9
例子:
>> a=[1 2;3 4]
a =
1 2
3 4
>> b=[5 6;7 8]
b =
5 6
7 8
>> a=[a b]
a =
1 2 5 6
3 4 7 8
b) d10=d9(:,2:10);
: 是 colon operator 广泛用于矢量操作、下标和创建循环迭代器
这里,
第二个下标2:10 表示d9 中的第2 3 4...10 列
第一个下标:d10中的所有行
所以d10 是由d9 的所有行中第2 列到第10 列中的所有元素分配的。
例子:
>> c=a(:,2:4)
c =
2 5 6
4 7 8
c) d5=[d6 d10 d7];
与第一个类似,连接矩阵 d6 d10 和 d7 并将结果分配给 d5。
【讨论】:
还不能直接在答案下发表评论,但我认为 P0W 的答案中有错字。
应该说明:
" first subscript : all rows in d9" (强调添加) 而不是" first subscript : all rows in d10 "
答案的其余部分是正确的,但以防万一它使不熟悉 Matlab 的人感到困惑......
【讨论】: