图是我在matlab编程时遇到的问题 请问最后答案为甚是1 还请具体回答 谢谢
1个回答
展开全部
在matlab中,与冒号同时使用的一般是标量,如 1:9 返回含有9个元素的向量。
>> 1:9
ans =
1 2 3 4 5 6 7 8 9
有一些特殊情况:
1) 其中一个为空,则返回一个空矩阵,如:
>> 1:[]
ans =
空矩阵: 1×0
2) 如果冒号两边有一边不是标量,则形式 i:j 被matlab 解释为 i(1):j(1),即只取其中第一个值作为调用冒号的标量,如:
>> i = [6 -5 -3];
>> j = [10 2 -1];
>> i:j
ans =
6 7 8 9 10
这里的 i:j 实际上就是 6:10
在你这个例子中,因为f不是标量,所以括号里的 1:f 实际上被解释为 1:f(1) 即 1:1,故 1:f 的返回结果为1。那么f(1:f)就相当于是调用 f(1),故为1
追问
那开始的f.'又是什么意思
追答
对于实数矩阵或向量而言,f'和f.'作用是一样的,都是求转置,推荐写成f'即可。
但对于复数矩阵而言,f'和f.'作用不一样,前者是求共轭转置矩阵(即先求元素的共轭复数),后者是和普通的矩阵转置一个原理。如:
clc;
disp('实数矩阵,结果一样');
disp('a=');
a = [1 2; 3 4];
disp(a);
disp('a''=');
disp(a')
disp('a.''=');
disp(a.');
disp(' ');
disp('复数矩阵,结果不一样');
a = [1+1i 2; 3 4-2i];
disp('a=');
disp(a);
disp('a''=');
disp(a')
disp('a.''=');
disp(a.');
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询