Pdata = reshape(pressureData(1,1,:),1,[]) plot(t,Pdata)
Dimensionality error with plot
1 view (last 30 days)
Show older comments
Hi, I would like to plot a snippet of pressureData, which is a 3 dimensional matrix, as follows:
tDim=length(pressureData(1,1,:)); t=zeros(1,tDim); dt=0.01;
for ii=1:tDim % Build time axis for plot
t(ii)=ii*dt;
end
plot(t,pressureData(1,1,:))
This returns an error saying "Error using plot. Data cannot have more than two dimensions."
When I output the vector pressureData(1,1,:) in the command window, the output looks like this:
ans(:,:,1) =
-0.0038
ans(:,:,2) =
-0.0042
etc.
The data type for pressureData is double, so I'm not sure why I am getting this odd output. Any ideas? Thanks in advance!
5 Comments
the cyclist
on 20 Jun 2023
Neither of the solutions so far (as I write this) change the size of pressureData.
Accepted Answer
the cyclist
on 20 Jun 2023
Edited: the cyclist
on 20 Jun 2023
I understand your confusion. pressureData(1,1,:) is a vector in the sense that it only has elements along one dimension (the 3rd dimension), but it is still a three-dimensional MATLAB array because it is 1x1xtDim.
There are a couple possible solutions. Probably the easiest is to use the squeeze function to remove the dimensions that have length 1.
plot(t,squeeze(pressureData(1,1,:)))
3 Comments
the cyclist
on 20 Jun 2023
Edited: the cyclist
on 20 Jun 2023
The size of pressureData doesn't really matter. The fact remains that
pressureData(1,1,:)
is a 1x1x5000 array, which is 3-dimensional. MATLAB will not treat that as a vector for plotting purposes, which is why you get the error. But
squeeze(pressureData(1,1,:))
is a 5000x1 vector, which will plot.
See Also
Categories
Find more on Creating and Concatenating Matrices 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!