图是我在matlab编程时遇到的问题 请问最后答案为甚是1 还请具体回答 谢谢

 我来答
loujing
2016-07-28 · TA获得超过1818个赞
知道小有建树答主
回答量:455
采纳率:100%
帮助的人:440万
展开全部

在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.');
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式