Getting "Arrays have incompatible sizes for this operation." on this exercise
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
ANGELOS-VASILEIOS MANTZOUKAS
il 28 Nov 2022
Commentato: Star Strider
il 28 Nov 2022
Hello im trying to create a discrete time signal and im getting Arrays have incompatible sizes for this operation. Its something on z = [u1 - u2];. Any help or advice?
close all;
clear all;
clc;
clf;
AM = 19390128
k = mod(AM,5)
t = mod(AM,4)
n = -50:50;
u = [zeros(3 + k) ones(3 + k)];
u1 = [zeros(n + 2 + k) ones(n + 2 + k)];
u2 = [zeros(n - 2 - t) ones(n - 2 - t)];
delta = [1,zeros(n - t)];
x = times(6,delta);
y = [u - x];
z = [u1 - u2];
stem(z);
0 Commenti
Risposta accettata
Star Strider
il 28 Nov 2022
The ‘z’ assignment fails because the arrays used to calculate it are empty, likely because the first 50 elements of ‘n’ are less than or equal to zero, an ‘n’ is being used to define ‘u1’ and ‘u2’. However replacing ‘n’ with numel(n) in those assignments still results in incompatible array sizes, at least in part because a single numeric argument to zeros and ones (and similar functions) results in a matrix —
AM = 19390128
k = mod(AM,5)
t = mod(AM,4)
n = -50:50;
Sz_n = size(n)
n_pos = nnz(n>0)
u = [zeros(3 + k) ones(3 + k)];
SzU = size(u)
u1 = [zeros(n + 2 + k) ones(n + 2 + k)]
u2 = [zeros(n - 2 - t) ones(n - 2 - t)]
u1 = [zeros(numel(n) + 2 + k) ones(numel(n) + 2 + k)] % Use: numel(n)
u2 = [zeros(numel(n) - 2 - t) ones(numel(n) - 2 - t)] % Use: numel(n)
delta = [1,zeros(n - t)];
x = times(6,delta);
y = [u - x];
z = [u1 - u2];
stem(z);
I leave that for you to resolve.
.
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Cell Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!