Storing multiple values in one location of matrix

Aman (view profile)

on 3 Feb 2011
Latest activity Edited by Aakash Bhatia

Aakash Bhatia (view profile)

on 3 Dec 2017
Accepted Answer by Andreas Goser

Andreas Goser (view profile)

I have used 2 variables i and j . now i want to place their values in one place in matrix,like if i=1 and j=2 i want to store 12 at matrix location (1,1)
kindly tell me the way to do it.,. thank you

Tags

Answer by Andreas Goser

Andreas Goser (view profile)

on 3 Feb 2011

I need to speculate a bit what the question is. Here an example code:
a=1; % I peronally never use i,j,I,J
b=2;
M=zeros(4);
M(3,3)=a; % Apply the content of a to position (3,3)
M(4,4)=b
Or is it something like that?
a=1; % I peronally never use i,j,I,J
b=2;
M=zeros(4);
M(3,3)=str2num([num2str(a), num2str(b)])

Aakash Bhatia

Aakash Bhatia (view profile)

on 3 Dec 2017
Hi , thank you for working this out. But is there a way to seperate the two elements i.e. a and b in your case with a comma?
Thanks

Answer by Davide Ferraro

Davide Ferraro (view profile)

on 3 Feb 2011

If your need is to place the single digits to create a bigger number if you would like to avoid passing through string conversion (as suggested by Andreas) you can use sums and multiplications to create the number.
a=1;
b=2;
M=zeros(4);
M(1,1) = [a b] * [10 1]';
% For more elements
a = 1;
b = 2;
c = 3;
d = 4;
M(1,1) = [a b c d] * (10.^(3:-1:0))';
This means a * 10 + b * 1 = 12. In the second example I'm extending the notation to allow the definition of more terms without writing a * 1000 + b * 100 * c * 10 * d * 1.
If your need is to store two values (a matrix) in another matrix you need to use Cell Arrays:
C = {[a,b]}