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 Kommentare

Walter Roberson
Walter Roberson am 18 Okt. 2019
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)
sharay
sharay am 18 Okt. 2019
I have x= 1*100 matrix and then Y = 4*4 matrix with 100 stacks.
Walter Roberson
Walter Roberson am 18 Okt. 2019
How many lines do you expect to be drawn as a result?
sharay
sharay am 21 Okt. 2019
In total 16 lines.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

KALYAN ACHARJYA
KALYAN ACHARJYA am 18 Okt. 2019
Bearbeitet: KALYAN ACHARJYA am 18 Okt. 2019

0 Stimmen

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 Kommentare

sharay
sharay am 18 Okt. 2019
Hi,
it is not working if you wabt to plot (X,Y) where X is 1*100 and Y is 4*4 100 matrices
KALYAN ACHARJYA
KALYAN ACHARJYA am 18 Okt. 2019
Bearbeitet: KALYAN ACHARJYA am 18 Okt. 2019
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
sharay
sharay am 18 Okt. 2019
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 am 18 Okt. 2019
Bearbeitet: KALYAN ACHARJYA am 18 Okt. 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?
sharay
sharay am 18 Okt. 2019
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 am 18 Okt. 2019
Bearbeitet: KALYAN ACHARJYA am 18 Okt. 2019
You can talk with me through my number (please check profile)

Melden Sie sich an, um zu kommentieren.

sharay
sharay am 18 Okt. 2019

0 Stimmen

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 ?
Walter Roberson
Walter Roberson am 18 Okt. 2019

0 Stimmen

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 18 Okt. 2019

Kommentiert:

am 21 Okt. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by