# Use switch for a matrix row

7 Ansichten (letzte 30 Tage)
JamJan am 26 Apr. 2018
Kommentiert: Birdman am 26 Apr. 2018
Hello,
I want to use switch to create a video with videowriter. I have written this piece of code. I want to use the cases to judge the rows which picture it has to insert as a frame, but if I do this, I get the following error:
SWITCH expression must be a scalar or character vector constant.
Error in FootSwitchDataAnalysis (line 120) switch M3(i,:);
How can I fix this?
M3 = zeros(6,4)
for i=1:size(M3,i);
switch M3(i,:)
case M3(i,:) == [0 0 0 0]
case M3(i,:) == [1 1 1 1]
end
frame2insert = im2frame(Frame)
writeVideo(v,frame2insert)
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Antworten (1)

Birdman am 26 Apr. 2018
Bearbeitet: Birdman am 26 Apr. 2018
if all(M3(i,:)==[0 0 0 0])
if all(M3(i,:)==[1 1 1 1])
##### 2 KommentareKeine anzeigenKeine ausblenden
JamJan am 26 Apr. 2018
I had a 16 elseif statements that I used before, because those cases are only 2 of the 16. That worked fine, but I wanted to use switch instead. This was the code:
for i=1:size(M3,i)
% if M3(i,:) == [0 0 0 0]
% elseif M3(i,:) == [1 1 1 1]
% elseif M3(i,:) == [1 1 1 0]
% elseif [1 1 0 0]
% elseif [1 1 0 1]
% elseif [1 0 1 1]
% elseif [1 0 1 0]
% elseif [1 0 0 1]
% elseif [1 0 0 0]
% elseif [0 1 1 1]
% elseif [0 1 1 0]
% elseif [0 1 0 0]
% elseif [0 1 0 1]
% elseif [0 0 1 1]
% elseif [0 0 1 0]
% else [0 0 0 1]
% end
% frame2insert = im2frame(A)
% writeVideo(v, frame2insert)
Birdman am 26 Apr. 2018
But as said in the error
SWITCH expression must be a scalar or character vector constant.
Therefore you need to take into consideration what I said. Use ismember for comparison of numeric arrays or use all with the structure that I said.
if all(M3(i,:)==[0 0 0 0])
or
if prod(ismember(M3(i,:),[0 0 0 0]))

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by