MATLAB中这些数组定义之间有什么区别?

ibr*_*maz 2 matlab

我试图理解这些数组定义之间的差异:

abc=[ 0 0 0 0 0 0]
Run Code Online (Sandbox Code Playgroud)

abc=[0;0;0;0;0;0]
Run Code Online (Sandbox Code Playgroud)

在C中,第一个定义是

int abc[]={0,0,0,0,0,0};
Run Code Online (Sandbox Code Playgroud)

第二个定义是

int [6][1]= {{0},{0},{0},{0},{0},{0}};   
Run Code Online (Sandbox Code Playgroud)

我对此是否正确?

Eli*_*sky 5

abc = [1 2 3 4]
Run Code Online (Sandbox Code Playgroud)

是一个"行向量".

abc = [1 2; 3 4]
Run Code Online (Sandbox Code Playgroud)

是2x2矩阵,因为括号内的分号分隔行.

abc = [1; 2; 3; 4]
Run Code Online (Sandbox Code Playgroud)

是一个4x1矩阵,又名"列向量".这是一个矩阵的特例,真的.您也可以通过转置相应的行向量来获取它:

abc = [1 2 3 4]'
Run Code Online (Sandbox Code Playgroud)

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


PS:是的,在这种情况下,你对C的解释是正确的.

  • 我要补充一点,小心'即复杂的共轭转置算子.如果您的数据很复杂,则会生成共轭转置..' 如果您想要做的就是改变阵列的形状,则运算符会产生非共轭转置.如果您的阵列是真实的,那么它们是相同的运算符. (2认同)