如何在矩阵中分配变量?

时间:2015-06-09 22:25:45

标签: octave

由于某些原因,我不能在其中使用变量制作矩阵。我得到以下信息。

>>> A= [a b ;(-1-a) (1-b); (1+a) b]

error: horizontal dimensions mismatch (2x3 vs 1x1)

为什么?如果我错了,请告诉我正确的方法。

1 个答案:

答案 0 :(得分:1)

在Matlab中,您首先需要先分配一个变量,然后才能使用它,

a = 1;
b = a+1;

因此会出错,

clear;
b = a+1; % ERROR! Undefined function or variable 'a

Matlab永远不接受未分配的变量。这是因为,在最低级别,您没有a。您将拥有机器代码,其值为a。这是由Matlab中的JIT编译器处理的,所以你不必担心这个。

如果你想在数学中使用某些东西作为变量,你可以专门用matlab表达。该对象称为sym,将sym x 定义为变量x的语法为,

syms x;

也就是说,您可以将矢量或矩阵定义为

syms a b x y; % Assign the syms
A = [x y]; % Vector
B = A= [a b ;(-1-a) (1-b); (1+a) b]; % Matrix.

可以使用size(M)或dim n size(M,n)找到矩阵的大小。当且仅当 M1 的尺寸 m * n M2 M3 = M1 * M2 strong>大小 n * p 。然后 M3 的大小为 m * p 。这也意味着仅当 m = n 时才允许操作 A ^ N = A * A * ... ,因此,矩阵是正方形。这可以通过比较在matlab中验证,

syms a b
A = [a,1;56,b]
if size(A,1) == size(A,2)
    disp(['A is a square matrix of size ', num2str(size(A,1)]);
else
    disp('A is not square');
end

这些是在Matlab中分配变量以及矩阵乘法的基本规则。此外,谷歌搜索错误错误:'x'未定义只会给我八度音阶。你在用八度音吗?在这种情况下,我无法保证您可以使用sym个对象或语法正确。