matlab 结构体调用

我有一个带字符串(名字)和数值的数据;数据要进行处理,排序,分割等,会发生行数的变化;现在想怎么着让这个字符(名字),随着行发生相应的变化
首先写了一个结构体
[num,tex]=xlsread('stream2.xls');
s=struct('stream',num,'name',tex(:,4));
s看来不能像个普通矩阵一样进行调用,我把A=s.stream; B=s.name;想赋值到矩阵A,B上,A,B能不能像普通矩阵一样,访问?但现在出现如下错误:
??? Illegal right hand side in assignment. Too many elements.
Error in ==> stream at 6 A=s.stream
希望高手指点下,错误什么意思,怎么实现我的想法?或者不用结构体,用别的也行
最新回答
被自己宠坏的小仙女

2024-11-23 10:35:42

亲,这种调用方法应该是可以的,我亲测了一下。提示的意思大概是说等号右边的语句不合法,元素太多。
不知道你这里的num是不是纯数字。你运行s.stream出来的结果是什么?
>> num=1:10;
>> text=2:40;
>> s=struct('stream',num,'name',text);
A= s.stream

A =

1 2 3 4 5 6 7 8 9 10
>> B= s.name

B =

Columns 1 through 10

2 3 4 5 6 7 8 9 10 11

Columns 11 through 20
追问
谢谢 ,s.stream是一个30*3的矩阵,运行s.stream得到一个矩阵;赋值到A上就会出现上述错误。
text是一个字符串组成的列向量,我运行的时候只写s.name 得到30个ans 不是一个列向量的样子。你写的B还是一个数值矩阵啊
追答
能把完整的程序发来看看么。2225884279