Convert rows of a matrix to vectors

非 Y 不嫁゛ 提交于 2019-12-31 07:34:27

问题


I have a matrix lets say:

A=[1 2 1; 5 6 7; 7 8 9]

and I want to extract its rows in the following format:

x_1=[1 2 1] x_2=[5 6 7] x_3=[7 8 9]

I want to know how I can write x_1 , x_2, x_3. I know how to extract the rows but I don't know how to make my x_1, x_2 and x_3. I want this to be automatic, because my real matrix has a very large size and I don't want to make x_1 x_2 .. x_100 by hand.


回答1:


You can try the following:

m = size(A,1);

for i=1:m
    % set the variable name
    varName = sprintf('x_%d',i);

    % create and assign the variable in the base workspace
    assignin('base',varName,A(i,:));
end 

The code iterates through every row of A, creates the variable name (as per your format) and then assigns a variable in the MATLAB base workspace ('base') with its data being the ith row of A.

If doing this from a function, rather than using 'base' use 'caller' to indicate that the variables should be created in the workspace of the function.



来源:https://stackoverflow.com/questions/23944801/convert-rows-of-a-matrix-to-vectors

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!