Ploting stack of matrices

Hi,
I have stack of 100 A= 4*4 matrices ,and a vector of B= 1*100 elements. I want to plot (B,A) . What are possible solutions for this ? Do I have to make a function that will respond to one matrix ata time for certain element ?
Also in matlab if you have 100*4*4 matrix what does it mean?

4 Comments

How many lines are you expecting? 100? 4? 16?
A 100 x 4 x 4 matrix is a block of memory that is modelled as if it were arranged in a cuboid with 100 rows and 4 columns and 4 layers ("panes"). The block is stored with left most index varying most quickly, so A(100,4,2) is the previous item in memory from A(1,1,3)
I have x= 1*100 matrix and then Y = 4*4 matrix with 100 stacks.
How many lines do you expect to be drawn as a result?
In total 16 lines.

Sign in to comment.

Answers (3)

KALYAN ACHARJYA
KALYAN ACHARJYA on 18 Oct 2019
Edited: KALYAN ACHARJYA on 18 Oct 2019
A=randi(100,[100 4 4]);
%........... ^[rows column number of stack planes]
B=randi(100,[100 4]);
[r c d]=size(A); % d represents here number of stacks planes
for i=1:d
plot(A(:,:,i),B);
hold on;
end
Read about multidimentinal array here
But if I have to generate 100 4*4 matrices what should be the procedure?
Are you looking for 100 stacks for 4x4 matrics, then
A=randi(100,[4 4 100]);
%.......^ represents maximum allowed values in the randomly generated matrics
Non Integer, then
A=rand(4,4,100);
Hope it helps!

6 Comments

Hi,
it is not working if you wabt to plot (X,Y) where X is 1*100 and Y is 4*4 100 matrices
If the X is 1*100 then B must be same as Y must be same size 1*100 with any number of stacks, example
X=randi(100,[1 100]);
%........... ^[rows column number]
Y=randi(100,[1 100 n]); % here n is any number of stacks
no, I think you are not getting. In your code B is 4*4 matrix. but i have 1*100. mean 1 row and 100 columns.
KALYAN ACHARJYA
KALYAN ACHARJYA on 18 Oct 2019
Edited: KALYAN ACHARJYA on 18 Oct 2019
Lets make it simple to undestand the issue
Say X is 1*100 (It's menas it having 100 elements) and Y is 4*4 matrices (Lets say 1 matrices first) having 16 elements, how you going to plot those numbers?
yes, this is the problem. for one element i have 16 elements. so for 100 elements on x-axis , i have to plot 1600 elements .
KALYAN ACHARJYA
KALYAN ACHARJYA on 18 Oct 2019
Edited: KALYAN ACHARJYA on 18 Oct 2019
You can talk with me through my number (please check profile)

Sign in to comment.

sharay
sharay on 18 Oct 2019
Thnak you . I solved this issue. Can someone help me with ploting like now i have 100*1 matrix and I want to plot it with 4*4 matrices of 100 layers. Should i assign function ?
If you have x being a 100 x 1 matrix, and y being as 100 x 4 x 4 matrix, then
plot(x, reshape(y, size(y,1), []))
This would create 16 lines, in the order y(:,1,1), y(:,2,1), y(:,3,1), y(:,4,1), y(:,1,2), y(:,2,2), y(:,3,2) and so on.

2 Comments

Input is 1x100 and output is 4x4x100.
Yp =
reshape( permute(y, [3 1 2]), [], 16);
plot(x, Yp) ;

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Asked:

on 18 Oct 2019

Commented:

on 21 Oct 2019

Community Treasure Hunt

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

Start Hunting!