Complete expression for matrix operator

4 visualizaciones (últimos 30 días)
Madison
Madison el 19 de Jul. de 2023
Editada: Dyuman Joshi el 19 de Jul. de 2023
When I change a paraenthesis to bracket I recieve an error, but when I use brackets I recieve another error
Parathesis:
File: untitled.m Line: 51 Column: 34
Invalid expression. Check for missing multiplication operator, missing or unbalanced delimiters, or
other syntax error. To construct matrices, use brackets instead of parentheses.
Brackets:
% check this, which depth level do you want?
% Which is the surface and which is the bottom?
% are the layers a consistent depth?
% this info should be in some supporting document on CMEMS
depth=ncread(fullfile(fp,'June2021.nc'),'depth');
% change this depending on how many vertical levels you need to calculate
% if you want lots of depth layers you'll need to amend the loop below
% this is an example, pulling out the second depth layer
nz=2;
% change this to how many years you want to run this loop over
ystart=1972;
yend=2022;
nyear=yend-ystart+1
for yi=1:nyear
ny=ystart+yi-1
filename=[fullfile(fp,'June' num2str(ny) '.nc')];
Invalid expression. Check for missing multiplication operator, missing or unbalanced delimiters, or other syntax error. To construct matrices, use brackets instead of parentheses.
u1 = ncread(filename,'uo',[1 1 nz 1],[length(lon) length(lat) 1 ntime]);
v1 = ncread(filename,'uo',[1 1 nz 1],[length(lon) length(lat) 1 ntime]);
% if you want monthly averages, do this
% note this will end up a different dimension if you're extracting
% multiple layers
% might want to predefine these matrices depending on what you want
% https://uk.mathworks.com/help/matlab/ref/mean.html
u2(:,:,yi)=mean(u1,[4]); whos u2
v2(:,:,yi)=mean(v1,[4]);
end
% then take the mean to get the mean over all the years, for one depth
% layer only, remember
u3=mean(u2,[3]); %taking the mean over the third dimension
v3=mean(u2,[3]);
% calculate the magnitude of the vel and plot
uv4=sqrt(u3.^2+v3.^2);
close all, pcolor(LON,LAT,uv4.'), shading flat, colorbar

Respuesta aceptada

Mrutyunjaya Hiremath
Mrutyunjaya Hiremath el 19 de Jul. de 2023
use like this
filename= fullfile(fp,['June', num2str(ny), '.nc']);
  2 comentarios
Madison
Madison el 19 de Jul. de 2023
Thank you, I was able to fix this anwser, but recieved an error in the following line.
Error in untitled (line 52)
u1 = ncread(fullfile(filename,'uo',[1 1 nz 1],[length(lon) length(lat) 1 ntime]));
for yi=1:nyear
ny=ystart+yi-1
filename=fullfile(fp,['June' num2str(ny) '.nc']);
u1 = ncread(fullfile(filename,'uo',[1 1 nz 1],[length(lon) length(lat) 1 ntime]));
v1 = ncread(fullfilefilename,'uo',[1 1 nz 1],[length(lon) length(lat) 1 ntime]);
% if you want monthly averages, do this
% note this will end up a different dimension if you're extracting
% multiple layers
% might want to predefine these matrices depending on what you want
% https://uk.mathworks.com/help/matlab/ref/mean.html
u2(:,:,yi)=mean(u1,[4]); whos u2
v2(:,:,yi)=mean(v1,[4]);
end
% then take the mean to get the mean over all the years, for one depth
% layer only, remember
u3=mean(u2,[3]); %taking the mean over the third dimension
v3=mean(u2,[3]);
% calculate the magnitude of the vel and plot
uv4=sqrt(u3.^2+v3.^2);
close all, pcolor(LON,LAT,uv4.'), shading flat, colorbar
Dyuman Joshi
Dyuman Joshi el 19 de Jul. de 2023
Editada: Dyuman Joshi el 19 de Jul. de 2023
Please copy and paste the full error message i.e. all of the red text.
Also, you are missing a set of parenthesis in the definition of variable v1.
% v v
v1 = ncread(fullfile(filename,'uo',[1 1 nz 1],[length(lon) length(lat) 1 ntime]));

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by