【问题标题】:What are the differences between these array definitions in MATLAB?MATLAB中的这些数组定义有什么区别?
【发布时间】:2010-06-26 12:13:15
【问题描述】:

我试图了解这些数组定义之间的区别:

abc=[ 0 0 0 0 0 0]

abc=[0;0;0;0;0;0]

在C中,第一个定义是

int abc[]={0,0,0,0,0,0};

第二个定义是

int [6][1]= {{0},{0},{0},{0},{0},{0}};   

我说的对吗?

【问题讨论】:

    标签: matlab


    【解决方案1】:
    abc = [1 2 3 4]
    

    是一个“行向量”。

    abc = [1 2; 3 4]
    

    是一个 2x2 矩阵,因为括号内的分号分隔行。

    abc = [1; 2; 3; 4]
    

    是一个 4x1 矩阵,又名“列向量”。这是矩阵的一个特例,真的。也可以通过转置对应的行向量得到:

    abc = [1 2 3 4]'
    

    (注意最后的引号 - 这是转置)


    P.S.:是的,在这种情况下,您对 C 的解释是正确的。

    【讨论】:

    • 谢谢伊莱夫人。我正在努力学习matlab,你能说我是个好资源吗?
    • @ironykchel:Matlab 文档非常好,剩下的应该在谷歌上搜索“matlab 教程”
    • @ironykchel 找到有趣的问题并尝试解决它:) 这是最好的学习方式,恕我直言。你看过 matlabcentral 网页上的文件交换吗?看看其他人如何解决他们的问题有时很有趣。
    • 我会补充一点,要小心 ' 即复共轭转置运算符。如果您的数据很复杂,它会产生共轭转置。这 。'如果您只想像转置那样更改数组的形状,则运算符会产生非共轭转置。如果您的数组是真实的,那么它们是相同的运算符。
    • Matlab 也是列优先的,因此向下扫描列比扫描行更快。列优先顺序意味着沿列的元素在内存中是连续的,而沿行的元素相距较远。向下扫描列可提高缓存效率。
    猜你喜欢
    • 1970-01-01
    • 2011-03-21
    • 2012-08-09
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多