Stuck in Indexing of a Matrix(or Cell Array)

2 views (last 30 days)
Hi all,I have just started learning MATLAB . Please find my codes below
m= ['A','B','C'];
cs=size(m,2);
for i=1:cs
for j=1:cs
if i~=j
s1=(m(i));s2=',';s3=(m(j));
s=strcat(s1,s2,s3);
disp(s);
end
end
end
It produces the following output on command window.
* A,B
* A,C
* B,A
* B,C
* C,A
* C,B
But , i want to wrap up all the outputs into a single matrix (or Cell Array ) , Lets say new_M . So that the values of new_M shall contain all the above values like this .
new_M (6,1) =
[ A,B
A,C
B,A
B,C
C,A
C,B ]
Your help will be highly appreciatated . Thanks in advance.

Accepted Answer

James Tursa
James Tursa on 25 Mar 2015
Edited: James Tursa on 25 Mar 2015
E.g., using the cell array approach:
m= ['A','B','C'];
cs=size(m,2);
new_M = cell(cs*(cs-1),1); % Pre-allocate your cell array
k = 0; % Initialize counter for cell array
for i=1:cs
for j=1:cs
if i~=j
s1=(m(i));s2=',';s3=(m(j));
s=strcat(s1,s2,s3);
disp(s);
k = k + 1; % Increment cell array counter
new_M(k) = {s}; % Stuff string into cell array element
end
end
end
  1 Comment
pradeep kumar
pradeep kumar on 26 Mar 2015
Thank a TON Mr James Tursa . That tiny logic was not clicking in my mind from long time . You saved me .

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!