founder2468 发表于 2006-10-13 09:49

求助:如何表示矩阵里面的矩阵啊

s=[s11(:,2) s12(:,2)
   s21(:,2)s22(:,2)]
s11 s12 s21 s22 是已知的2维方阵.我想通过循环把s表示出来
但是我不知道怎么调用矩阵里面的矩阵的元素,    s(1)!=s11(:,2),我想通过取数组元素的方法把s11(:,2)取出来
因为这仅仅是2维的,如果是8维的输入就比较麻烦了
麻烦各位大哥指点一下!本人不盛感激!

founder2468 发表于 2006-10-13 09:57

有没有人啊?
哪位大哥帮帮忙啊

eight 发表于 2006-10-13 10:05

原帖由 founder2468 于 2006-10-13 09:57 发表
有没有人啊?
哪位大哥帮帮忙啊


老实说,我看了半天都没有看明白

realhappy 发表于 2006-10-13 10:14

原帖由 founder2468 于 2006-10-13 09:49 发表
s=[s11(:,2) s12(:,2)
   s21(:,2)s22(:,2)]
s11 s12 s21 s22 是已知的2维方阵.我想通过循环把s表示出来
但是我不知道怎么调用矩阵里面的矩阵的元素,    s(1)!=s11(:,2),我想通过取数组元素的方法把s11(:, ...
表示太复杂,看不懂。

founder2468 发表于 2006-10-13 10:33

是我没有说清楚.看原题
clear
clc
a=
load canshu.mat%导入S参数
m=2 %端口数
n=3 %频点数
for p=1:n%频率循环
   S=
   c=S*a
   b(1:m,p)=c% 改成b(2,j)=c不行
   for k=1:m
   R=b(k,p)/a(k)
   T(k,p)=R%T为复反射系数
   v(k,p)=(1+abs(T(k,p)))/(1-abs(T(k,p))) %将反射系数转化为驻波
end
end
plot(S11(:,1),abs(v(1,:)),'-r',S11(:,1),abs(v(2,:)),'-b')
title('复反射系数与频率的函数')
xlabel('频率MHz')
ylabel('复反射系数')
text(2010,2.5,'红色--1端口 蓝色--2端口')
上面的程序仅仅是2维的,如果是8维的话,表示S太麻烦了,请问有没有更好的办法?

founder2468 发表于 2006-10-13 10:36

canshu.mat 里面包含S11,S12,S21,S22四个变量
也就是说S11系列的参数值可以通过canshu.mat导入

eight 发表于 2006-10-13 10:45

原帖由 founder2468 于 2006-10-13 10:33 发表
是我没有说清楚.看原题
clear
clc
a=
load canshu.mat%导入S参数
m=2 %端口数
n=3 %频点数
for p=1:n%频率循环
   S=
   c=S*a
   b(1:m,p)=c% 改成b(2,j)=c不行
   for k=1:m
   R=b(k,p)/a( ...

你把全部程序直接贴上来,我可真的没有心思看,而且也未必看懂。建议用把问题的精髓抽取出来,然后简单的用一些变量或者语言表达

founder2468 发表于 2006-10-13 10:50

a=b=c=d= 都是2维方阵,
s=[a(1,:)   b(1,:)
   c(1,:)    d(1,:)]
我想用s(1)的形式访问a(1,:)不行,有没有好的办法?

eight 发表于 2006-10-13 11:05

原帖由 founder2468 于 2006-10-13 10:50 发表
a=b=c=d= 都是2维方阵,
s=[a(1,:)   b(1,:)
   c(1,:)    d(1,:)]
我想用s(1)的形式访问a(1,:)不行,有没有好的办法?


把s定义为cell类型可以吗?这样访问起来就方便得多了,直接s(1)就ok了

founder2468 发表于 2006-10-13 11:15

非常感谢!应该可以
不过我还想问一下,可不可以进行2级访问
譬如访问a(1,:)中的第2个元素,用s(1)(2),应该是不行的,
该如何表示了?

eight 发表于 2006-10-13 11:25

原帖由 founder2468 于 2006-10-13 11:15 发表
非常感谢!应该可以
不过我还想问一下,可不可以进行2级访问
譬如访问a(1,:)中的第2个元素,用s(1)(2),应该是不行的,
该如何表示了?

如果s是cell类型,则:

b = s{1};
b(2)

founder2468 发表于 2006-10-13 11:29

可不可以对变量名进行循环
譬如s11,s12,s13,s14,s15,能不能对它们建立一个循环?
另外,怎么把s矩阵定义为cell型?麻烦您简单的 写一下

jimin 发表于 2006-10-13 11:48

原帖由 founder2468 于 2006-10-13 11:29 发表
可不可以对变量名进行循环
譬如s11,s12,s13,s14,s15,能不能对它们建立一个循环?
另外,怎么把s矩阵定义为cell型?麻烦您简单的 写一下
自己找点资料,做一下,试过了才知道可不可以
试过了不行,再来问也不迟
关于s矩阵定义为cell型,网上一搜索就能找到的
eight一再的启发,是希望你自己去解决问题,而不是他送佛送到西

founder2468 发表于 2006-10-13 11:53

哎,惭愧!是我太懒了

eight 发表于 2006-10-13 12:08

原帖由 founder2468 于 2006-10-13 11:29 发表
可不可以对变量名进行循环
譬如s11,s12,s13,s14,s15,能不能对它们建立一个循环?
另外,怎么把s矩阵定义为cell型?麻烦您简单的 写一下


变量名循环用eval命令吧
页: [1]
查看完整版本: 求助:如何表示矩阵里面的矩阵啊