慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。
- matlab : R2018a 64bit
- os : win7
- type setting : markdown
- blog : https://blog.csdn.net/yushaopu
- github : https://github.com/GratefulHeartCoder
code
clear
clc
% x'=A*x+B*u
% y=C*x
% A矩阵
A=[1 0 0;0 0 1;0 5 0]
% C矩阵
C=[1 1 0]
%知道A的行数列数,也就知道了n。
sizeOfA=size(A);
temp=C;
%i必须要从1开始。
for i=1:1:sizeOfA(1)-1
Q=zeros(i+1,sizeOfA(1));
%横向连接B矩阵与power(A,i)*B矩阵
Q=cat(1,temp,C*A^i);
temp=Q;
end
fprintf('Qc矩阵是');
Q
fprintf('Qc矩阵的秩是%d,',rank(Q))
fprintf('n是%d\n',sizeOfA(1))
if(rank(Q)==sizeOfA(1))
fprintf('所以能观\n');
else
fprintf('所以不能观\n');
end
result
A =
1 0 0
0 0 1
0 5 0
C =
1 1 0
Qc矩阵是
Q =
1 1 0
1 0 1
1 5 0
Qc矩阵的秩是3,n是3
所以能观
>>
感想
即使是根据已有的计算过程来设计算法,也会消耗大量的时间。
这篇博文中的算法,具体的步骤是这样的:
1、用标准的方法一步一步的解出
2、多做几道题,多看看定义,找到规律
3、用人类的语言,写出规律
4、翻译成软件能懂的语言
注:在第四步的时候,就需要对软件的各个函数功能有了解。如果没有了解的话,就只能上网搜索了。
resource
感恩曾经帮助过 心少朴 的人。
matlab优秀,值得学习。基础知识 + 专业知识 + matlab = ?
注:此文是自学笔记所生,质量中下等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。