标量(scalar)、向量(vector)、矩阵(matrix)、数组(array)等概念的深入理解与运用
一、为方便理解,先定义几个变量
a1=5;
a2=[2 3 4 5];
a3=[1:3;10:12];
b1=\'a\';
b2=\'abcd\';
b3=[\'abcd\';\'1234\';\'!@#$\'];
b4={ \'abcd\';\'1234\';\'!@#$\'};
b5=\'\';
b6={ \'abcd\',\'1234\',\'!@#$\'};
c1=\"\";
c2=\"abc\";
c3=[\"abc\",\"123\"];
c4={ \"abc\",\"123\"};
c5=[\"abc\",\"123\";\"!@#\",\"xyz\"];
c6={ \"abc\",\"123\";\"!@#\",\"xyz\"};
二、用到的有关函数
size(a)返回a的行数和列数。
isscalar(a)判断a是不是标量,是返回逻辑1,否返回逻辑0.
isvector(a)判断a是不是向量,是返回逻辑1,否返回逻辑0.
class(a)查看a的数据类型
isempty(a)检查a是否为空,是返回逻辑1,否返回逻辑0.
三、什么是标量(scalar)
凡是调用size函数返回1×1(即1行1列)的变量都称为标量。凡是调用isscalar函数返回逻辑1的都称为标量。标量维度为1。
以上变量中,标量有:a1,b1,c1,c2为标量。其中:
a1称为数值标量(Numeric scalar)
b1 称为字符标量(character scalar)
c1、c2 称为字符串标量(string scalar)
四、什么是向量(vector)
凡是调用size函数返回1×n或1×n (n>=1)(即1行n列或者n)的变量都称为向量。凡是调用isvector函数返回逻辑1的都称为向量。标量是向量的特殊形式。向量的维度为2.
a1,a2称为数值向量(Numeric vector)
b1,b2 ,b4, b6 称为字符向量(character vector)
c1,c2,c3,c4 称为字符串向量(string scalar)
五、代码验证
以下检查各个变量的行数和列数,并检查是不是标量和向量。
%a1
disp(sprintf(\'a1行数和列数分别为:%d行%d列,类型\'\'%s\'\'\',size(a1),class(a1)));
a1行数和列数分别为:1行1列,类型\'double\'
if isscalar(a1)
disp(\'a1是标量\');
else disp(\'a1不是标量\');
end
a1是标量
if isvector(a1)
disp(\'a1是向量\');
else disp(\'a1不是向量\');
end
a1是向量
%a2
disp(sprintf(\'a2行数和列数分别为:%d行%d列,类型\'\'%s\'\'\',size(a2),class(a2)));
a2行数和列数分别为:1行4列,类型\'double\'
if isscalar(a2)
disp(\'a2是标量\');
else disp(\'a2不是标量\');
end
a2不是标量
if isvector(a2)
disp(\'a2是向量\');
else disp(\'a2不是向量\');
end
a2是向量
%a3
disp(sprintf(\'a3行数和列数分别为:%d行%d列,类型\'\'%s\'\'\',size(a3),class(a3)));
a3行数和列数分别为:2行3列,类型\'double\'
if isscalar(a3)
disp(\'a3是标量\');
else disp(\'a3不是标量\');
end
a3不是标量