matlab中如何把一个两列的数据赋值给矩阵并将两列分别赋值x和y

如:256 256

456 456
254 365
。。。。
赋值给一个矩阵A[N,2],然后让A(i ,1)赋值给ai;A(i ,2)赋值给bi;
求高手解惑啊
我用A[N,2],=fscanf(‘data.txt','%f %f')总是显示不对:Unbalanced or unexpected parenthesis or bracket.

1、使用=号进行赋值,会将等号右边的值付给左面,比如x=13则x就是13了。

2、可以对变量进行进一步赋值,也可以包含以前的变量,比如y=x+13。

3、以上是一维赋值,也可以赋值多维矩阵比如A=[0 1 2 3]其中可以用:来表示,如A=[0:100],表示0到100之间的数赋值给矩阵A。

4、在左下角的工作区workspace中可以看到所有的变量,也可以使用who命令来查看所有变量。

5、使用命令clear 变量,比如clear A,会将变量A从内存中清除。

6、对于矩阵赋值,比如B=[1 2 3;4 5 6;],这结果如下,显然,使用分号进行换行。就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-30
如果只是为了得到a矩阵第一列与第二列相加的结果,可以很方便的实现:

a=[1 2;3 4];
Z=a(:,1)+a(:,2);

如果,一定要按照意思,先把x,y定义为符号变量,再赋值计算,syms x y也起不到做作用,matlab不需要定义。

a=[1 2;3 4];
x=a(:,1);
y=a(:,2);
z=x+y;

如果要一次次的计算,所知道是利用for循环。

a=[1 2;3 4];
for k=1:2
x=a(k,1);
y=a(k,2);
z(k)=x+y;
end
第2个回答  推荐于2017-11-26
其实直接用load函数更方便
A=load('data.txt') %N*2矩阵直接读取并保存在A中
然后可以用循环
for: i=1:numel(A(:,1))
ai=A(i,1);
bi=A(i,2);
end追问

初学者,谢谢大神,这几个读取函数有何分别啊?如textread,fscanf,load....

追答

fscanf 最低端, 一个一个字符读都可以

textread 是按行或者矩阵(每行格式相同)读取
load 最高端, 也限制最大, 读取整块同数据类型的矩阵

本回答被提问者采纳
第3个回答  2013-09-11
A=load('data.txt');
ai=A(:,1);
bi=A(:,2);
第4个回答  2013-09-11
比如
A=[1,2;
3,4;
5,6];
a=A(:,1)
b=A(:,2)