1,“比如说我有的变量是数值变量有的变量是字符变量,可以不可以在一个矩阵中展示,还是说必须要分开存放?”
可以。如果要在一个“矩阵”中展示,即存成"matrix"型,此时矩阵中有既有 "numerric"元素,又有 "charatcter"元素,但"charatcter"元素最多8个字符。
并且可以用函数 printfm 按不同格式显示矩阵内容。比如:
new;
name1={"a","b"};
x={1,2};
mydata=name1~x;
mask={0 1};
fmt={"-*.*s" 8 8,"*.*lf" 10 4};
printfm(mydata,mask,fmt);
// 如果想选取 名为 "a"的x,可以这样:
x_sub=selif(x,name1.$=="a");
print(x_sub);
2,可不可以把一个字符串数组和一个矩阵进行合并?
可以。比如,一个F盘下一个names.txt文件中存放如下内容:
aaaabbbbcccc
b
我们把它读入到一个字符数组"name2"中来:
file="F:/names.txt";
name2={};
f=fopen(file,"rb");
do until eof(f);
temp=fgets(f,100);
name2=name2$|temp;
endo;
name2=strtrimr(name2);
// 然后想把一开始的 x={1,2}与这里的name2存放到一起,可以利用gauss data archives,比如:
//name2 is a string array
//x is a matrix
rc=gdacreate("f:/myfile.gda",1);
rc=gdawrite("f:/myfile.gda",x,"x");
rc=gdawrite("f:/myfile.gda",name2,"name2");
//此后,如果想读取,可以这样:
x_new=gdaread("f:/myfile.gda","x");
names_new=gdaread("f:/myfile.gda","name2");
//如果想选取名为 "aaaabbbbcccc"的变量,可以这样:
x_sub2=selif(x_new,names_new.$=="aaaabbbbcccc");
3,为什么矩阵的内容可以编辑,而字符串数组和字符串的内容不能进行编辑呢?
不知道。
1# 仙人掌宝贝


雷达卡


京公网安备 11010802022788号







